Small code cleanup

This commit is contained in:
daa 2017-04-22 22:25:05 +03:00
parent 0f919ec390
commit 910baed09e

View File

@ -115,7 +115,7 @@ impl NvimHandler {
_ => vec![], _ => vec![],
}; };
let call_reapint_mode = call(ui, ev_name, &args)?; let call_reapint_mode = call(ui, ev_name, &args)?;
repaint_mode = repaint_mode.join(&call_reapint_mode); repaint_mode = repaint_mode.join(call_reapint_mode);
} }
} else { } else {
println!("Unsupported event {:?}", ev_args); println!("Unsupported event {:?}", ev_args);
@ -267,33 +267,29 @@ pub enum RepaintMode {
} }
impl RepaintMode { impl RepaintMode {
// [TODO]: Remove clones - 2017-04-22 09:46 pub fn join(self, mode: RepaintMode) -> RepaintMode {
pub fn join(&self, mode: &RepaintMode) -> RepaintMode {
match (self, mode) { match (self, mode) {
(&RepaintMode::Nothing, m) => m.clone(), (RepaintMode::Nothing, m) => m,
(m, &RepaintMode::Nothing) => m.clone(), (m, RepaintMode::Nothing) => m,
(&RepaintMode::All, _) => RepaintMode::All, (RepaintMode::All, _) => RepaintMode::All,
(_, &RepaintMode::All) => RepaintMode::All, (_, RepaintMode::All) => RepaintMode::All,
(&RepaintMode::Area(ref mr1), &RepaintMode::Area(ref mr2)) => { (RepaintMode::Area(mr1), RepaintMode::Area(mr2)) => {
let mut vec = ModelRectVec::new(mr1.clone()); let mut vec = ModelRectVec::new(mr1);
vec.join(mr2); vec.join(&mr2);
RepaintMode::AreaList(vec) RepaintMode::AreaList(vec)
} }
(&RepaintMode::AreaList(ref target), &RepaintMode::AreaList(ref source)) => { (RepaintMode::AreaList(mut target), RepaintMode::AreaList(source)) => {
let mut list = target.clone();
for s in &source.list { for s in &source.list {
list.join(&s); target.join(&s);
} }
RepaintMode::AreaList(target)
}
(RepaintMode::AreaList(mut list), RepaintMode::Area(l2)) => {
list.join(&l2);
RepaintMode::AreaList(list) RepaintMode::AreaList(list)
} }
(&RepaintMode::AreaList(ref l1), &RepaintMode::Area(ref l2)) => { (RepaintMode::Area(l1), RepaintMode::AreaList(mut list)) => {
let mut list = l1.clone(); list.join(&l1);
list.join(l2);
RepaintMode::AreaList(list)
}
(&RepaintMode::Area(ref l1), &RepaintMode::AreaList(ref l2)) => {
let mut list = l2.clone();
list.join(l1);
RepaintMode::AreaList(list) RepaintMode::AreaList(list)
} }
} }