1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
/*
* @Author: plucky
* @Date: 2022-10-21 16:53:21
*/
//! Derive macro for sqlx to implement Create, Read, Update, and Delete (CRUD) methods.
//! # Use
//! adding the following to your project's Cargo.toml:
//! ```toml
//! [dependencies]
//! co-orm = { virsion = "0.3", features = ["mysql"] }
//! sqlx = { version = "0.8", features = ["mysql"] }
//! ```
//! features: mysql, postgres, sqlite, mssql
//!
//! # Examples
//! ``` no_run,ignore
//! use co_orm::{Crud, args};
//!
//! #[derive(Debug, Crud, sqlx::FromRow)]
//! #[co_orm(rename = "users")] // rename table name
//! pub struct User {
//! // #[co_orm(id)] // default first field is primary key
//! #[co_orm(skip_insert)] // insert will ignore this field
//! pub id: i64,
//! #[co_orm(rename = "name")] // rename field name
//! pub name: String,
//! #[co_orm(update)] // generate method update_xxx.
//! pub password: String,
//! #[co_orm(skip)] // ignore field
//! #[sqlx(skip)]
//! pub addr: Option<String>,
//! #[co_orm(skip_insert)] // insert will skip this field.
//! pub update_at: Option<NaiveDateTime>,
//! }
//!
//! // use crud
//! let u = User::get(&pool, 1).await;
//! println!("get {:?}", u);
//! let u = User::get_by(&pool, "where id=?", args!(1)).await;
//! println!("get_by {:?}", u);
//! let u = User::query_where(&pool, Where::new().eq("name", "jack")).await;
//! println!("query_where {:?}", u);
//! let u = User::query_page_where(&pool, Where::new().eq("name", "jack"), 1, 10).await;
//! println!("query_page_where {:?}", u);
//! let u = User::update_where(&pool, Where::new().eq("name", "jack")).await;
//! println!("update_where {:?}", u);
//! let u = User::delete_where(&pool, Where::new().eq("name", "jack")).await;
//! println!("delete_where {:?}", u);
//! ```
pub use Crud;
pub use FromRow;
pub use Where;