1pub mod c_u128;
2pub mod c_u16;
3pub mod c_u32;
4pub mod c_u64;
6pub mod c_usize;
7
8#[cfg(test)]
10pub mod test {
11 use sqlx::{self, Row};
12 use tokio;
13
14 use crate::c_u128::U128;
15
16 #[tokio::test]
17 pub async fn main() {
18 let pool = sqlx::PgPool::connect(
19 "postgres://root:TeamNovaCollaboration@192.168.2.254:65500/postgres",
20 )
21 .await
22 .unwrap();
23
24 sqlx::query("CREATE EXTENSION IF NOT EXISTS uint128;")
28 .execute(&pool)
29 .await
30 .expect("Failed to create extension");
31 sqlx::query("CREATE TABLE IF NOT EXISTS test (id uint16 PRIMARY KEY, data uint16[]);")
33 .execute(&pool)
34 .await
35 .expect("Failed to create table");
36 let id = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFu128;
40 let data = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFu128 - 1;
41 let data2 = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFu128 - 2;
42 sqlx::query("INSERT INTO test (id, data) VALUES ($1, $2)")
43 .bind(U128::from(id))
44 .bind(vec![U128::from(data), U128::from(data2)])
45 .execute(&pool)
46 .await
47 .expect("Failed to insert data");
48
49 let res = sqlx::query("SELECT id, data FROM test WHERE id = $1")
51 .bind(U128::from(id))
52 .fetch_one(&pool)
53 .await
54 .expect("Failed to select data");
55 println!(
56 "id: {:?}, data: {:?}",
57 res.get::<U128, _>(0),
58 res.get::<Vec<U128>, _>(1)
59 );
60
61 sqlx::query("DROP TABLE test;")
63 .execute(&pool)
64 .await
65 .unwrap();
66 sqlx::query("DROP EXTENSION uint128;")
67 .execute(&pool)
68 .await
69 .unwrap();
70 }
71}