forked from qdrant/qdrant
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathschema_generator.rs
102 lines (97 loc) · 3.14 KB
/
schema_generator.rs
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
use api::grpc::models::{CollectionsResponse, VersionInfo};
use api::rest::{
QueryGroupsRequest, QueryRequest, QueryRequestBatch, QueryResponse, Record, ScoredPoint,
};
use collection::operations::cluster_ops::ClusterOperations;
use collection::operations::consistency_params::ReadConsistency;
use collection::operations::payload_ops::{DeletePayload, SetPayload};
use collection::operations::point_ops::{PointInsertOperations, PointsSelector, WriteOrdering};
use collection::operations::snapshot_ops::{
ShardSnapshotRecover, SnapshotDescription, SnapshotRecover,
};
use collection::operations::types::{
AliasDescription, CollectionClusterInfo, CollectionExistence, CollectionInfo,
CollectionsAliasesResponse, CountRequest, CountResult, DiscoverRequest, DiscoverRequestBatch,
GroupsResult, PointGroup, PointRequest, RecommendGroupsRequest, RecommendRequest,
RecommendRequestBatch, ScrollRequest, ScrollResult, SearchGroupsRequest, SearchRequest,
SearchRequestBatch, UpdateResult,
};
use collection::operations::vector_ops::{DeleteVectors, UpdateVectors};
use schemars::gen::SchemaSettings;
use schemars::JsonSchema;
use serde::Serialize;
use storage::content_manager::collection_meta_ops::{
ChangeAliasesOperation, CreateCollection, UpdateCollection,
};
use storage::types::ClusterStatus;
use crate::common::helpers::LocksOption;
use crate::common::points::{CreateFieldIndex, UpdateOperations};
use crate::common::telemetry::TelemetryData;
mod actix;
mod common;
mod settings;
mod tracing;
#[derive(Serialize, JsonSchema)]
struct AllDefinitions {
a1: CollectionsResponse,
a2: CollectionInfo,
// a3: CollectionMetaOperations,
a4: PointRequest,
a5: Record,
a6: SearchRequest,
a7: ScoredPoint,
a8: UpdateResult,
// a9: CollectionUpdateOperations,
aa: RecommendRequest,
ab: ScrollRequest,
ac: ScrollResult,
ad: CreateCollection,
ae: UpdateCollection,
af: ChangeAliasesOperation,
ag: CreateFieldIndex,
ah: PointsSelector,
ai: PointInsertOperations,
aj: SetPayload,
ak: DeletePayload,
al: ClusterStatus,
am: SnapshotDescription,
an: CountRequest,
ao: CountResult,
ap: CollectionClusterInfo,
aq: TelemetryData,
ar: ClusterOperations,
at: SearchRequestBatch,
au: RecommendRequestBatch,
av: LocksOption,
aw: SnapshotRecover,
ax: CollectionsAliasesResponse,
ay: AliasDescription,
az: WriteOrdering,
b1: ReadConsistency,
b2: UpdateVectors,
b3: DeleteVectors,
b4: PointGroup,
b5: SearchGroupsRequest,
b6: RecommendGroupsRequest,
b7: GroupsResult,
b8: UpdateOperations,
b9: ShardSnapshotRecover,
ba: DiscoverRequest,
bb: DiscoverRequestBatch,
bc: VersionInfo,
bd: CollectionExistence,
be: QueryRequest,
bf: QueryRequestBatch,
bg: QueryResponse,
bh: QueryGroupsRequest,
}
fn save_schema<T: JsonSchema>() {
let settings = SchemaSettings::draft07();
let gen = settings.into_generator();
let schema = gen.into_root_schema_for::<T>();
let schema_str = serde_json::to_string_pretty(&schema).unwrap();
println!("{schema_str}")
}
fn main() {
save_schema::<AllDefinitions>();
}