trait Persister {
    fn add_item(&self, desc: &str) -> i32;
    fn change_item_desc(&self, id: i32, desc: &str) -> Result<(), ()>;
    fn update_item(&self, id: i32, last_reviewed: i32, ff: f64, int_step: i32, iri: f64) -> Result<(), ()>;
    fn remove_item(&self, id: i32) -> Result<(), ()>;
    fn get_items(&self) -> Vec<Item>;
}

trait Persister {
    fn add_item(&self, &Item) -> i32;
    fn change_item_desc(&self, i32, &str);
    fn update_item(&self, &Item);
    fn remove_item(&self, i32);
    fn get_items(&self) -> Vec<Item>;
}

--- 
+++ 
@@ -1,7 +1,7 @@
 trait Persister {
-    fn add_item(&self, &Item) -> i32;
-    fn change_item_desc(&self, i32, &str);
-    fn update_item(&self, &Item);
-    fn remove_item(&self, i32);
+    fn add_item(&self, desc: &str) -> i32;
+    fn change_item_desc(&self, id: i32, desc: &str) -> Result<(), ()>;
+    fn update_item(&self, id: i32, last_reviewed: i32, ff: f64, int_step: i32, iri: f64) -> Result<(), ()>;
+    fn remove_item(&self, id: i32) -> Result<(), ()>;
     fn get_items(&self) -> Vec<Item>;
 }
Rework params of Persister trait methods
