pub struct Model<T> { /* private fields */ }
Implementations§
Source§impl<T: Serialize + for<'a> Deserialize<'a>> Model<T>
impl<T: Serialize + for<'a> Deserialize<'a>> Model<T>
Sourcepub fn new(name: &str, connection: &Connection) -> Self
pub fn new(name: &str, connection: &Connection) -> Self
Create a new Modal instance.
name
is name of the modal.
connection
connection reference.
Examples found in repository?
examples/main.rs (line 13)
11fn main() {
12 let connection = Connection::new("my-app").unwrap();
13 let mut model = Model::<User>::new("user", &connection);
14
15 // load all previous datas
16 model.load();
17
18 // create a new data
19 model.create(User {
20 id: 0,
21 name: String::from("Mahi"),
22 email: String::from("email"),
23 });
24
25 // save current state of model
26 model.save();
27
28 // remove all
29 model.removes(|_| true);
30
31 // get specifice
32 model.get(|user| user.id == 1);
33
34 // get specifice users
35 model.gets(|user| user.name.eq("Mahi"));
36
37 // remove specifice
38 model.remove(|user| user.name.eq("Mahi"));
39
40 // remove some users
41 model.removes(|user| user.name.eq("Me"));
42}
Sourcepub fn load(&mut self)
pub fn load(&mut self)
load
load previous state of data.
Examples found in repository?
examples/main.rs (line 16)
11fn main() {
12 let connection = Connection::new("my-app").unwrap();
13 let mut model = Model::<User>::new("user", &connection);
14
15 // load all previous datas
16 model.load();
17
18 // create a new data
19 model.create(User {
20 id: 0,
21 name: String::from("Mahi"),
22 email: String::from("email"),
23 });
24
25 // save current state of model
26 model.save();
27
28 // remove all
29 model.removes(|_| true);
30
31 // get specifice
32 model.get(|user| user.id == 1);
33
34 // get specifice users
35 model.gets(|user| user.name.eq("Mahi"));
36
37 // remove specifice
38 model.remove(|user| user.name.eq("Mahi"));
39
40 // remove some users
41 model.removes(|user| user.name.eq("Me"));
42}
Sourcepub fn save(&self)
pub fn save(&self)
save
save the current state of data.
Examples found in repository?
examples/main.rs (line 26)
11fn main() {
12 let connection = Connection::new("my-app").unwrap();
13 let mut model = Model::<User>::new("user", &connection);
14
15 // load all previous datas
16 model.load();
17
18 // create a new data
19 model.create(User {
20 id: 0,
21 name: String::from("Mahi"),
22 email: String::from("email"),
23 });
24
25 // save current state of model
26 model.save();
27
28 // remove all
29 model.removes(|_| true);
30
31 // get specifice
32 model.get(|user| user.id == 1);
33
34 // get specifice users
35 model.gets(|user| user.name.eq("Mahi"));
36
37 // remove specifice
38 model.remove(|user| user.name.eq("Mahi"));
39
40 // remove some users
41 model.removes(|user| user.name.eq("Me"));
42}
Sourcepub fn create(&mut self, payload: T) -> Option<&T>
pub fn create(&mut self, payload: T) -> Option<&T>
create
creates a new record
Examples found in repository?
examples/main.rs (lines 19-23)
11fn main() {
12 let connection = Connection::new("my-app").unwrap();
13 let mut model = Model::<User>::new("user", &connection);
14
15 // load all previous datas
16 model.load();
17
18 // create a new data
19 model.create(User {
20 id: 0,
21 name: String::from("Mahi"),
22 email: String::from("email"),
23 });
24
25 // save current state of model
26 model.save();
27
28 // remove all
29 model.removes(|_| true);
30
31 // get specifice
32 model.get(|user| user.id == 1);
33
34 // get specifice users
35 model.gets(|user| user.name.eq("Mahi"));
36
37 // remove specifice
38 model.remove(|user| user.name.eq("Mahi"));
39
40 // remove some users
41 model.removes(|user| user.name.eq("Me"));
42}
Sourcepub fn get(&self, condition: impl Fn(&T) -> bool) -> Option<&T>
pub fn get(&self, condition: impl Fn(&T) -> bool) -> Option<&T>
get
get a single item.
Examples found in repository?
examples/main.rs (line 32)
11fn main() {
12 let connection = Connection::new("my-app").unwrap();
13 let mut model = Model::<User>::new("user", &connection);
14
15 // load all previous datas
16 model.load();
17
18 // create a new data
19 model.create(User {
20 id: 0,
21 name: String::from("Mahi"),
22 email: String::from("email"),
23 });
24
25 // save current state of model
26 model.save();
27
28 // remove all
29 model.removes(|_| true);
30
31 // get specifice
32 model.get(|user| user.id == 1);
33
34 // get specifice users
35 model.gets(|user| user.name.eq("Mahi"));
36
37 // remove specifice
38 model.remove(|user| user.name.eq("Mahi"));
39
40 // remove some users
41 model.removes(|user| user.name.eq("Me"));
42}
Sourcepub fn gets(&self, condition: impl Fn(&T) -> bool) -> Vec<&T>
pub fn gets(&self, condition: impl Fn(&T) -> bool) -> Vec<&T>
gets
get many item.
Examples found in repository?
examples/main.rs (line 35)
11fn main() {
12 let connection = Connection::new("my-app").unwrap();
13 let mut model = Model::<User>::new("user", &connection);
14
15 // load all previous datas
16 model.load();
17
18 // create a new data
19 model.create(User {
20 id: 0,
21 name: String::from("Mahi"),
22 email: String::from("email"),
23 });
24
25 // save current state of model
26 model.save();
27
28 // remove all
29 model.removes(|_| true);
30
31 // get specifice
32 model.get(|user| user.id == 1);
33
34 // get specifice users
35 model.gets(|user| user.name.eq("Mahi"));
36
37 // remove specifice
38 model.remove(|user| user.name.eq("Mahi"));
39
40 // remove some users
41 model.removes(|user| user.name.eq("Me"));
42}
Sourcepub fn remove(&mut self, condition: impl Fn(&T) -> bool) -> Option<T>
pub fn remove(&mut self, condition: impl Fn(&T) -> bool) -> Option<T>
remove
remove a single item.
Examples found in repository?
examples/main.rs (line 38)
11fn main() {
12 let connection = Connection::new("my-app").unwrap();
13 let mut model = Model::<User>::new("user", &connection);
14
15 // load all previous datas
16 model.load();
17
18 // create a new data
19 model.create(User {
20 id: 0,
21 name: String::from("Mahi"),
22 email: String::from("email"),
23 });
24
25 // save current state of model
26 model.save();
27
28 // remove all
29 model.removes(|_| true);
30
31 // get specifice
32 model.get(|user| user.id == 1);
33
34 // get specifice users
35 model.gets(|user| user.name.eq("Mahi"));
36
37 // remove specifice
38 model.remove(|user| user.name.eq("Mahi"));
39
40 // remove some users
41 model.removes(|user| user.name.eq("Me"));
42}
Sourcepub fn removes(&mut self, condition: impl Fn(&T) -> bool)
pub fn removes(&mut self, condition: impl Fn(&T) -> bool)
removes
remove many item.
Examples found in repository?
examples/main.rs (line 29)
11fn main() {
12 let connection = Connection::new("my-app").unwrap();
13 let mut model = Model::<User>::new("user", &connection);
14
15 // load all previous datas
16 model.load();
17
18 // create a new data
19 model.create(User {
20 id: 0,
21 name: String::from("Mahi"),
22 email: String::from("email"),
23 });
24
25 // save current state of model
26 model.save();
27
28 // remove all
29 model.removes(|_| true);
30
31 // get specifice
32 model.get(|user| user.id == 1);
33
34 // get specifice users
35 model.gets(|user| user.name.eq("Mahi"));
36
37 // remove specifice
38 model.remove(|user| user.name.eq("Mahi"));
39
40 // remove some users
41 model.removes(|user| user.name.eq("Me"));
42}
Trait Implementations§
Source§impl<'de, T> Deserialize<'de> for Model<T>where
T: Deserialize<'de>,
impl<'de, T> Deserialize<'de> for Model<T>where
T: Deserialize<'de>,
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl<T> Freeze for Model<T>
impl<T> RefUnwindSafe for Model<T>where
T: RefUnwindSafe,
impl<T> Send for Model<T>where
T: Send,
impl<T> Sync for Model<T>where
T: Sync,
impl<T> Unpin for Model<T>where
T: Unpin,
impl<T> UnwindSafe for Model<T>where
T: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more