co_orm/
lib.rs

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