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#[cfg(test)]
46mod tests {
47 #[test]
48 fn it_works() {
49 let result = 2 + 2;
50 assert_eq!(result, 4);
51 }
52}