test_sqlx/
lib.rs

1use std::fmt::format;
2use std::os::unix::raw::off_t;
3use sqlx::{Error, Executor, MySql, Pool};
4use serde::Serialize;
5
6pub trait Entity {
7    fn fetch_all();
8}
9
10#[derive(sqlx::FromRow, Serialize)]
11struct User {
12    id: i64,
13}
14
15impl Entity for User {
16    fn fetch_all() {
17        todo!()
18    }
19}
20
21#[derive(sqlx::FromRow, Serialize)]
22struct User2 {
23    id: i64,
24}
25
26
27
28impl Entity for User2 {
29    fn fetch_all() {
30        todo!()
31    }
32}
33pub async fn all(session: &Pool<MySql>) -> Result<Vec<User>, Error> {
34    let sql = format!("select * from user");
35    return sqlx::query_as::<_, User>(r#sql.as_str()).fetch_all(session).await;
36}
37
38// pub async fn find_all(session: &Pool<MySql>) -> Result<Vec<T>, Error> {
39//     let mut s = User{id: 64};
40//     let sql = format!("select * from user where name=?");
41//     return sqlx::query_as::<_, T>(r#sql.as_str()).fetch(s).await;
42// }
43
44
45#[cfg(test)]
46mod tests {
47    #[test]
48    fn it_works() {
49        let result = 2 + 2;
50        assert_eq!(result, 4);
51    }
52}