sui_gql_client/queries/
objects_flat.rs1use cynic::QueryFragment;
2
3use super::fragments::{ObjectFilterV2, PageInfoForward};
4use crate::schema;
5
6#[derive(cynic::QueryFragment, Clone, Debug)]
8#[cynic(variables = "Variables")]
9pub(crate) struct Query<Object>
10where
11 Object: QueryFragment<SchemaType = schema::Object, VariablesFields = ()>,
12{
13 #[arguments(filter: $filter, first: $first, after: $after)]
14 pub objects: ObjectConnection<Object>,
15}
16
17impl<Object> Query<Object> where
18 Object: QueryFragment<SchemaType = schema::Object, VariablesFields = ()>
19{
20}
21
22#[derive(cynic::QueryVariables, Clone, Debug)]
27pub(crate) struct Variables<'a> {
28 pub filter: Option<ObjectFilterV2<'a>>,
29 pub after: Option<String>,
30 pub first: Option<i32>,
31}
32
33impl super::stream::UpdatePageInfo for Variables<'_> {
34 fn update_page_info(&mut self, info: &super::fragments::PageInfo) {
35 self.after.clone_from(&info.end_cursor)
36 }
37}
38
39#[derive(cynic::QueryFragment, Clone, Debug)]
45#[cynic(graphql_type = "ObjectConnection")]
46pub(crate) struct ObjectConnection<Object>
47where
48 Object: QueryFragment<SchemaType = schema::Object, VariablesFields = ()>,
49{
50 pub nodes: Vec<Object>,
51 pub page_info: PageInfoForward,
52}