From 385ae17bb7bb731fcdab9a2a029720ca6faf8a84 Mon Sep 17 00:00:00 2001 From: Jos van den Oever Date: Fri, 26 Oct 2018 00:32:02 +0200 Subject: [PATCH] Pass the emitter as mutable. It is pointless otherwise. --- demo/rust/src/implementation/demo.rs | 4 ++-- demo/rust/src/implementation/fibonacci.rs | 8 ++++---- demo/rust/src/implementation/file_system_tree.rs | 4 ++-- demo/rust/src/implementation/processes.rs | 12 ++++++++---- demo/rust/src/implementation/time_series.rs | 4 ++-- demo/rust/src/interface.rs | 12 ++++++------ examples/todos/rust/src/implementation.rs | 4 ++-- examples/todos/rust/src/interface.rs | 2 +- src/rust.rs | 4 ++-- templates/qt_quick/rust/src/implementation.rs | 4 ++-- templates/qt_quick/rust/src/interface.rs | 2 +- templates/qt_widgets/rust/src/implementation.rs | 4 ++-- templates/qt_widgets/rust/src/interface.rs | 2 +- tests/rust_functions/src/implementation.rs | 4 ++-- tests/rust_functions/src/interface.rs | 2 +- tests/rust_list/src/implementation.rs | 8 ++++---- tests/rust_list/src/interface.rs | 4 ++-- tests/rust_list_types/src/implementation.rs | 4 ++-- tests/rust_list_types/src/interface.rs | 2 +- tests/rust_object/src/implementation.rs | 4 ++-- tests/rust_object/src/interface.rs | 2 +- tests/rust_object_types/src/implementation.rs | 4 ++-- tests/rust_object_types/src/interface.rs | 2 +- tests/rust_objects/src/implementation.rs | 12 ++++++------ tests/rust_objects/src/interface.rs | 6 +++--- tests/rust_tree/src/implementation.rs | 4 ++-- tests/rust_tree/src/interface.rs | 2 +- 27 files changed, 65 insertions(+), 61 deletions(-) diff --git a/demo/rust/src/implementation/demo.rs b/demo/rust/src/implementation/demo.rs index 58f1105..2161bf3 100644 --- a/demo/rust/src/implementation/demo.rs +++ b/demo/rust/src/implementation/demo.rs @@ -44,8 +44,8 @@ impl DemoTrait for Demo { time_series } } - fn emit(&self) -> &DemoEmitter { - &self.emit + fn emit(&mut self) -> &mut DemoEmitter { + &mut self.emit } fn fibonacci(&self) -> &Fibonacci { &self.fibonacci diff --git a/demo/rust/src/implementation/fibonacci.rs b/demo/rust/src/implementation/fibonacci.rs index 43bcc20..5e5c084 100644 --- a/demo/rust/src/implementation/fibonacci.rs +++ b/demo/rust/src/implementation/fibonacci.rs @@ -53,8 +53,8 @@ impl FibonacciTrait for Fibonacci { result: Arc::new(AtomicUsize::new(0)), } } - fn emit(&self) -> &FibonacciEmitter { - &self.emit + fn emit(&mut self) -> &mut FibonacciEmitter { + &mut self.emit } fn input(&self) -> u32 { self.input @@ -87,8 +87,8 @@ impl FibonacciListTrait for FibonacciList { emit, } } - fn emit(&self) -> &FibonacciListEmitter { - &self.emit + fn emit(&mut self) -> &mut FibonacciListEmitter { + &mut self.emit } fn row_count(&self) -> usize { 93 diff --git a/demo/rust/src/implementation/file_system_tree.rs b/demo/rust/src/implementation/file_system_tree.rs index 4285207..8898fed 100644 --- a/demo/rust/src/implementation/file_system_tree.rs +++ b/demo/rust/src/implementation/file_system_tree.rs @@ -228,8 +228,8 @@ where tree.reset(); tree } - fn emit(&self) -> &FileSystemTreeEmitter { - &self.emit + fn emit(&mut self) -> &mut FileSystemTreeEmitter { + &mut self.emit } fn path(&self) -> Option<&str> { self.path.as_ref().map(|s| &s[..]) diff --git a/demo/rust/src/implementation/processes.rs b/demo/rust/src/implementation/processes.rs index dcc1b98..df2921a 100644 --- a/demo/rust/src/implementation/processes.rs +++ b/demo/rust/src/implementation/processes.rs @@ -89,8 +89,12 @@ fn handle_tasks(processes: &mut HashMap) -> Vec { let pids: Vec = processes.keys().cloned().collect(); for pid in pids { if let Some(parent) = processes[&pid].process.parent { - let p = processes.get_mut(&parent).unwrap(); - p.tasks.push(pid); + if let Some(p) = processes.get_mut(&parent) { + p.tasks.push(pid); + } else { + println!("no parent for {}", pid); + top.push(pid); + } } else { top.push(pid); } @@ -334,8 +338,8 @@ impl ProcessesTrait for Processes { update_thread(emit, p.incoming.clone(), p.active, rx); p } - fn emit(&self) -> &ProcessesEmitter { - &self.emit + fn emit(&mut self) -> &mut ProcessesEmitter { + &mut self.emit } fn row_count(&self, index: Option) -> usize { if let Some(index) = index { diff --git a/demo/rust/src/implementation/time_series.rs b/demo/rust/src/implementation/time_series.rs index 9bc2b9a..889ec19 100644 --- a/demo/rust/src/implementation/time_series.rs +++ b/demo/rust/src/implementation/time_series.rs @@ -46,8 +46,8 @@ impl TimeSeriesTrait for TimeSeries { } series } - fn emit(&self) -> &TimeSeriesEmitter { - &self.emit + fn emit(&mut self) -> &mut TimeSeriesEmitter { + &mut self.emit } fn row_count(&self) -> usize { self.list.len() as usize diff --git a/demo/rust/src/interface.rs b/demo/rust/src/interface.rs index 866bbaa..b8fdf89 100644 --- a/demo/rust/src/interface.rs +++ b/demo/rust/src/interface.rs @@ -125,7 +125,7 @@ pub trait DemoTrait { file_system_tree: FileSystemTree, processes: Processes, time_series: TimeSeries) -> Self; - fn emit(&self) -> &DemoEmitter; + fn emit(&mut self) -> &mut DemoEmitter; fn fibonacci(&self) -> &Fibonacci; fn fibonacci_mut(&mut self) -> &mut Fibonacci; fn fibonacci_list(&self) -> &FibonacciList; @@ -369,7 +369,7 @@ impl FibonacciEmitter { pub trait FibonacciTrait { fn new(emit: FibonacciEmitter) -> Self; - fn emit(&self) -> &FibonacciEmitter; + fn emit(&mut self) -> &mut FibonacciEmitter; fn input(&self) -> u32; fn set_input(&mut self, value: u32); fn result(&self) -> u64; @@ -498,7 +498,7 @@ impl FibonacciListList { pub trait FibonacciListTrait { fn new(emit: FibonacciListEmitter, model: FibonacciListList) -> Self; - fn emit(&self) -> &FibonacciListEmitter; + fn emit(&mut self) -> &mut FibonacciListEmitter; fn row_count(&self) -> usize; fn insert_rows(&mut self, _row: usize, _count: usize) -> bool { false } fn remove_rows(&mut self, _row: usize, _count: usize) -> bool { false } @@ -691,7 +691,7 @@ impl FileSystemTreeTree { pub trait FileSystemTreeTrait { fn new(emit: FileSystemTreeEmitter, model: FileSystemTreeTree) -> Self; - fn emit(&self) -> &FileSystemTreeEmitter; + fn emit(&mut self) -> &mut FileSystemTreeEmitter; fn path(&self) -> Option<&str>; fn set_path(&mut self, value: Option); fn row_count(&self, Option) -> usize; @@ -998,7 +998,7 @@ impl ProcessesTree { pub trait ProcessesTrait { fn new(emit: ProcessesEmitter, model: ProcessesTree) -> Self; - fn emit(&self) -> &ProcessesEmitter; + fn emit(&mut self) -> &mut ProcessesEmitter; fn active(&self) -> bool; fn set_active(&mut self, value: bool); fn row_count(&self, Option) -> usize; @@ -1278,7 +1278,7 @@ impl TimeSeriesList { pub trait TimeSeriesTrait { fn new(emit: TimeSeriesEmitter, model: TimeSeriesList) -> Self; - fn emit(&self) -> &TimeSeriesEmitter; + fn emit(&mut self) -> &mut TimeSeriesEmitter; fn row_count(&self) -> usize; fn insert_rows(&mut self, _row: usize, _count: usize) -> bool { false } fn remove_rows(&mut self, _row: usize, _count: usize) -> bool { false } diff --git a/examples/todos/rust/src/implementation.rs b/examples/todos/rust/src/implementation.rs index b300ff0..6360591 100644 --- a/examples/todos/rust/src/implementation.rs +++ b/examples/todos/rust/src/implementation.rs @@ -32,8 +32,8 @@ impl TodosTrait for Todos { active_count: 0, } } - fn emit(&self) -> &TodosEmitter { - &self.emit + fn emit(&mut self) -> &mut TodosEmitter { + &mut self.emit } fn active_count(&self) -> u64 { self.active_count as u64 diff --git a/examples/todos/rust/src/interface.rs b/examples/todos/rust/src/interface.rs index 56aa27a..8d2ee91 100644 --- a/examples/todos/rust/src/interface.rs +++ b/examples/todos/rust/src/interface.rs @@ -193,7 +193,7 @@ impl TodosList { pub trait TodosTrait { fn new(emit: TodosEmitter, model: TodosList) -> Self; - fn emit(&self) -> &TodosEmitter; + fn emit(&mut self) -> &mut TodosEmitter; fn active_count(&self) -> u64; fn count(&self) -> u64; fn add(&mut self, description: String) -> (); diff --git a/src/rust.rs b/src/rust.rs index 0cb7aa6..3d10690 100644 --- a/src/rust.rs +++ b/src/rust.rs @@ -492,7 +492,7 @@ pub trait {}Trait {{ writeln!( r, ") -> Self; - fn emit(&self) -> &{}Emitter;", + fn emit(&mut self) -> &mut {}Emitter;", o.name )?; for (name, p) in &o.properties { @@ -1347,7 +1347,7 @@ fn write_rust_implementation_object(r: &mut Vec, o: &Object) -> Result<()> { r, " }} }} - fn emit(&self) -> &{}Emitter {{ + fn emit(&mut self) -> &mut {}Emitter {{ &self.emit }}", o.name diff --git a/templates/qt_quick/rust/src/implementation.rs b/templates/qt_quick/rust/src/implementation.rs index fb9c575..ddd40e8 100644 --- a/templates/qt_quick/rust/src/implementation.rs +++ b/templates/qt_quick/rust/src/implementation.rs @@ -12,8 +12,8 @@ impl SimpleTrait for Simple { message: String::new(), } } - fn emit(&self) -> &SimpleEmitter { - &self.emit + fn emit(&mut self) -> &mut SimpleEmitter { + &mut self.emit } fn message(&self) -> &str { "Hello World!" diff --git a/templates/qt_quick/rust/src/interface.rs b/templates/qt_quick/rust/src/interface.rs index 0a8f8c3..64c4110 100644 --- a/templates/qt_quick/rust/src/interface.rs +++ b/templates/qt_quick/rust/src/interface.rs @@ -74,7 +74,7 @@ impl SimpleEmitter { pub trait SimpleTrait { fn new(emit: SimpleEmitter) -> Self; - fn emit(&self) -> &SimpleEmitter; + fn emit(&mut self) -> &mut SimpleEmitter; fn message(&self) -> &str; fn set_message(&mut self, value: String); } diff --git a/templates/qt_widgets/rust/src/implementation.rs b/templates/qt_widgets/rust/src/implementation.rs index fb9c575..ddd40e8 100644 --- a/templates/qt_widgets/rust/src/implementation.rs +++ b/templates/qt_widgets/rust/src/implementation.rs @@ -12,8 +12,8 @@ impl SimpleTrait for Simple { message: String::new(), } } - fn emit(&self) -> &SimpleEmitter { - &self.emit + fn emit(&mut self) -> &mut SimpleEmitter { + &mut self.emit } fn message(&self) -> &str { "Hello World!" diff --git a/templates/qt_widgets/rust/src/interface.rs b/templates/qt_widgets/rust/src/interface.rs index 0a8f8c3..64c4110 100644 --- a/templates/qt_widgets/rust/src/interface.rs +++ b/templates/qt_widgets/rust/src/interface.rs @@ -74,7 +74,7 @@ impl SimpleEmitter { pub trait SimpleTrait { fn new(emit: SimpleEmitter) -> Self; - fn emit(&self) -> &SimpleEmitter; + fn emit(&mut self) -> &mut SimpleEmitter; fn message(&self) -> &str; fn set_message(&mut self, value: String); } diff --git a/tests/rust_functions/src/implementation.rs b/tests/rust_functions/src/implementation.rs index a9db611..8daa300 100644 --- a/tests/rust_functions/src/implementation.rs +++ b/tests/rust_functions/src/implementation.rs @@ -15,8 +15,8 @@ impl PersonTrait for Person { user_name: String::new(), } } - fn emit(&self) -> &PersonEmitter { - &self.emit + fn emit(&mut self) -> &mut PersonEmitter { + &mut self.emit } fn user_name(&self) -> &str { &self.user_name diff --git a/tests/rust_functions/src/interface.rs b/tests/rust_functions/src/interface.rs index 86b3694..6b0e666 100644 --- a/tests/rust_functions/src/interface.rs +++ b/tests/rust_functions/src/interface.rs @@ -77,7 +77,7 @@ impl PersonEmitter { pub trait PersonTrait { fn new(emit: PersonEmitter) -> Self; - fn emit(&self) -> &PersonEmitter; + fn emit(&mut self) -> &mut PersonEmitter; fn user_name(&self) -> &str; fn set_user_name(&mut self, value: String); fn append(&mut self, suffix: String, amount: u32) -> (); diff --git a/tests/rust_list/src/implementation.rs b/tests/rust_list/src/implementation.rs index d71a2c2..13fa088 100644 --- a/tests/rust_list/src/implementation.rs +++ b/tests/rust_list/src/implementation.rs @@ -23,8 +23,8 @@ impl PersonsTrait for Persons { list: vec![PersonsItem::default(); 10], } } - fn emit(&self) -> &PersonsEmitter { - &self.emit + fn emit(&mut self) -> &mut PersonsEmitter { + &mut self.emit } fn row_count(&self) -> usize { self.list.len() @@ -52,8 +52,8 @@ impl NoRoleTrait for NoRole { list: vec![PersonsItem::default(); 10], } } - fn emit(&self) -> &NoRoleEmitter { - &self.emit + fn emit(&mut self) -> &mut NoRoleEmitter { + &mut self.emit } fn row_count(&self) -> usize { self.list.len() diff --git a/tests/rust_list/src/interface.rs b/tests/rust_list/src/interface.rs index df1e90c..0428169 100644 --- a/tests/rust_list/src/interface.rs +++ b/tests/rust_list/src/interface.rs @@ -177,7 +177,7 @@ impl NoRoleList { pub trait NoRoleTrait { fn new(emit: NoRoleEmitter, model: NoRoleList) -> Self; - fn emit(&self) -> &NoRoleEmitter; + fn emit(&mut self) -> &mut NoRoleEmitter; fn row_count(&self) -> usize; fn insert_rows(&mut self, _row: usize, _count: usize) -> bool { false } fn remove_rows(&mut self, _row: usize, _count: usize) -> bool { false } @@ -389,7 +389,7 @@ impl PersonsList { pub trait PersonsTrait { fn new(emit: PersonsEmitter, model: PersonsList) -> Self; - fn emit(&self) -> &PersonsEmitter; + fn emit(&mut self) -> &mut PersonsEmitter; fn row_count(&self) -> usize; fn insert_rows(&mut self, _row: usize, _count: usize) -> bool { false } fn remove_rows(&mut self, _row: usize, _count: usize) -> bool { false } diff --git a/tests/rust_list_types/src/implementation.rs b/tests/rust_list_types/src/implementation.rs index f9a62ef..c119e87 100644 --- a/tests/rust_list_types/src/implementation.rs +++ b/tests/rust_list_types/src/implementation.rs @@ -37,8 +37,8 @@ impl ListTrait for List { list: vec![ListItem::default(); 10], } } - fn emit(&self) -> &ListEmitter { - &self.emit + fn emit(&mut self) -> &mut ListEmitter { + &mut self.emit } fn row_count(&self) -> usize { self.list.len() diff --git a/tests/rust_list_types/src/interface.rs b/tests/rust_list_types/src/interface.rs index c8be099..2fabcd4 100644 --- a/tests/rust_list_types/src/interface.rs +++ b/tests/rust_list_types/src/interface.rs @@ -180,7 +180,7 @@ impl ListList { pub trait ListTrait { fn new(emit: ListEmitter, model: ListList) -> Self; - fn emit(&self) -> &ListEmitter; + fn emit(&mut self) -> &mut ListEmitter; fn row_count(&self) -> usize; fn insert_rows(&mut self, _row: usize, _count: usize) -> bool { false } fn remove_rows(&mut self, _row: usize, _count: usize) -> bool { false } diff --git a/tests/rust_object/src/implementation.rs b/tests/rust_object/src/implementation.rs index 3614624..4389171 100644 --- a/tests/rust_object/src/implementation.rs +++ b/tests/rust_object/src/implementation.rs @@ -15,8 +15,8 @@ impl PersonTrait for Person { user_name: String::new(), } } - fn emit(&self) -> &PersonEmitter { - &self.emit + fn emit(&mut self) -> &mut PersonEmitter { + &mut self.emit } fn user_name(&self) -> &str { &self.user_name diff --git a/tests/rust_object/src/interface.rs b/tests/rust_object/src/interface.rs index 583c151..6973a77 100644 --- a/tests/rust_object/src/interface.rs +++ b/tests/rust_object/src/interface.rs @@ -74,7 +74,7 @@ impl PersonEmitter { pub trait PersonTrait { fn new(emit: PersonEmitter) -> Self; - fn emit(&self) -> &PersonEmitter; + fn emit(&mut self) -> &mut PersonEmitter; fn user_name(&self) -> &str; fn set_user_name(&mut self, value: String); } diff --git a/tests/rust_object_types/src/implementation.rs b/tests/rust_object_types/src/implementation.rs index b6c76a8..69dd00e 100644 --- a/tests/rust_object_types/src/implementation.rs +++ b/tests/rust_object_types/src/implementation.rs @@ -49,8 +49,8 @@ impl ObjectTrait for Object { string_by_function: String::new() } } - fn emit(&self) -> &ObjectEmitter { - &self.emit + fn emit(&mut self) -> &mut ObjectEmitter { + &mut self.emit } fn boolean(&self) -> bool { self.boolean diff --git a/tests/rust_object_types/src/interface.rs b/tests/rust_object_types/src/interface.rs index 659f572..0ab854d 100644 --- a/tests/rust_object_types/src/interface.rs +++ b/tests/rust_object_types/src/interface.rs @@ -250,7 +250,7 @@ impl ObjectEmitter { pub trait ObjectTrait { fn new(emit: ObjectEmitter) -> Self; - fn emit(&self) -> &ObjectEmitter; + fn emit(&mut self) -> &mut ObjectEmitter; fn boolean(&self) -> bool; fn set_boolean(&mut self, value: bool); fn bytearray(&self) -> &[u8]; diff --git a/tests/rust_objects/src/implementation.rs b/tests/rust_objects/src/implementation.rs index ac03c97..0494a13 100644 --- a/tests/rust_objects/src/implementation.rs +++ b/tests/rust_objects/src/implementation.rs @@ -15,8 +15,8 @@ impl GroupTrait for Group { person: person, } } - fn emit(&self) -> &GroupEmitter { - &self.emit + fn emit(&mut self) -> &mut GroupEmitter { + &mut self.emit } fn person(&self) -> &Person { &self.person @@ -38,8 +38,8 @@ impl InnerObjectTrait for InnerObject { description: String::new(), } } - fn emit(&self) -> &InnerObjectEmitter { - &self.emit + fn emit(&mut self) -> &mut InnerObjectEmitter { + &mut self.emit } fn description(&self) -> &str { &self.description @@ -62,8 +62,8 @@ impl PersonTrait for Person { object: object, } } - fn emit(&self) -> &PersonEmitter { - &self.emit + fn emit(&mut self) -> &mut PersonEmitter { + &mut self.emit } fn object(&self) -> &InnerObject { &self.object diff --git a/tests/rust_objects/src/interface.rs b/tests/rust_objects/src/interface.rs index f3f9efe..14ceeb7 100644 --- a/tests/rust_objects/src/interface.rs +++ b/tests/rust_objects/src/interface.rs @@ -67,7 +67,7 @@ impl GroupEmitter { pub trait GroupTrait { fn new(emit: GroupEmitter, person: Person) -> Self; - fn emit(&self) -> &GroupEmitter; + fn emit(&mut self) -> &mut GroupEmitter; fn person(&self) -> &Person; fn person_mut(&mut self) -> &mut Person; } @@ -143,7 +143,7 @@ impl InnerObjectEmitter { pub trait InnerObjectTrait { fn new(emit: InnerObjectEmitter) -> Self; - fn emit(&self) -> &InnerObjectEmitter; + fn emit(&mut self) -> &mut InnerObjectEmitter; fn description(&self) -> &str; fn set_description(&mut self, value: String); } @@ -215,7 +215,7 @@ impl PersonEmitter { pub trait PersonTrait { fn new(emit: PersonEmitter, object: InnerObject) -> Self; - fn emit(&self) -> &PersonEmitter; + fn emit(&mut self) -> &mut PersonEmitter; fn object(&self) -> &InnerObject; fn object_mut(&mut self) -> &mut InnerObject; } diff --git a/tests/rust_tree/src/implementation.rs b/tests/rust_tree/src/implementation.rs index 09d4f4f..5895e03 100644 --- a/tests/rust_tree/src/implementation.rs +++ b/tests/rust_tree/src/implementation.rs @@ -22,8 +22,8 @@ impl PersonsTrait for Persons { list: vec![PersonsItem::default(); 10], } } - fn emit(&self) -> &PersonsEmitter { - &self.emit + fn emit(&mut self) -> &mut PersonsEmitter { + &mut self.emit } fn row_count(&self, index: Option) -> usize { self.list.len() diff --git a/tests/rust_tree/src/interface.rs b/tests/rust_tree/src/interface.rs index 79b18a4..618120b 100644 --- a/tests/rust_tree/src/interface.rs +++ b/tests/rust_tree/src/interface.rs @@ -177,7 +177,7 @@ impl PersonsTree { pub trait PersonsTrait { fn new(emit: PersonsEmitter, model: PersonsTree) -> Self; - fn emit(&self) -> &PersonsEmitter; + fn emit(&mut self) -> &mut PersonsEmitter; fn row_count(&self, Option) -> usize; fn can_fetch_more(&self, Option) -> bool { false