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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
use ;
use serde as my_serde;
use ;
// just leaving here for example purposes
// #[typesensei(extra_fields(
// field(name = "variants.assembly", ty = "string", facet, optional),
// field(name = "variants.backing", ty = "string", facet, optional),
// field(name = "variants.jewelry_shape", ty = "string", facet, optional),
// field(name = "variants.gem", ty = "string", facet, optional),
// field(name = "variants.color", ty = "string", facet, optional),
// field(name = "variances.assembly", ty = "string[]", facet, optional),
// field(name = "variances.backing", ty = "string[]", facet, optional),
// field(name = "variances.jewelry_shape", ty = "string[]", facet, optional),
// field(name = "variances.gem", ty = "string[]", facet, optional),
// field(name = "variances.color", ty = "string[]", facet, optional),
// field(name = "facets..*", ty = "auto", facet, optional)
// ))]
// #[tokio::test]
// async fn test_derive() {
// let client = typesensei::Client::builder()
// .hostname("http://127.0.0.1:8108")
// .api_key("xyz")
// .build()
// .unwrap();
// let res = client.collection::<One>().create().await.unwrap();
// let mut one = One::model();
// one.field0.set(123);
// one.field1.set("hello world".to_owned());
// one.some.set(Some(11));
// one.json["field2"] = 5332.into();
// one.json["field3"] = serde_json::json!("something");
// let res = client.documents::<One>().create(&one).await.unwrap();
// println!("res: {res:#?}");
// let mut query = One::query();
// query.field0.greater_or_equals(123).sort_asc();
// query.field1.query_by();
// query
// .json
// .filter_by("field2:>=5332".to_owned())
// .query_by("field3".to_owned());
// let query = query.q("hello world".to_owned());
// println!("q: {}", serde_json::to_string_pretty(&query).unwrap());
// let res = client.documents::<One>().search(&query).await.unwrap();
// println!("res: {:#?}", res);
// // let doc = client
// // .collection::<One>()
// // .documents()
// // .retrieve("1")
// // .await
// // .unwrap();
// // println!("doc: {:?}", doc);
// // println!("schema: {:#?}", One::schema());
// }