forked from diesel-rs/diesel
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathqueryable.rs
More file actions
38 lines (31 loc) · 1.02 KB
/
Copy pathqueryable.rs
File metadata and controls
38 lines (31 loc) · 1.02 KB
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
use diesel::expression::dsl::sql;
use diesel::*;
use diesel::types::Integer;
use test_helpers::connection;
#[test]
fn named_struct_definition() {
#[derive(Debug, Clone, Copy, PartialEq, Eq, Queryable)]
struct MyStruct {
foo: i32,
bar: i32,
}
let conn = connection();
let data = select(sql::<(Integer, Integer)>("1, 2")).get_result(&conn);
assert_eq!(Ok(MyStruct { foo: 1, bar: 2 }), data);
}
#[test]
fn tuple_struct() {
#[derive(Debug, Clone, Copy, PartialEq, Eq, Queryable)]
struct MyStruct(#[column_name(foo)] i32, #[column_name(bar)] i32);
let conn = connection();
let data = select(sql::<(Integer, Integer)>("1, 2")).get_result(&conn);
assert_eq!(Ok(MyStruct(1, 2)), data);
}
#[test]
fn tuple_struct_without_column_name_annotations() {
#[derive(Debug, Clone, Copy, PartialEq, Eq, Queryable)]
struct MyStruct(i32, i32);
let conn = connection();
let data = select(sql::<(Integer, Integer)>("1, 2")).get_result(&conn);
assert_eq!(Ok(MyStruct(1, 2)), data);
}