reactive_graph_dynamic_graph_api/
dynamic_graph_schema_manager.rs1use std::sync::Arc;
2
3use async_graphql::dynamic::Schema;
4use async_graphql::dynamic::SchemaBuilder;
5use async_graphql::dynamic::SchemaError;
6use async_trait::async_trait;
7use springtime_di::injectable;
8
9use reactive_graph_lifecycle::Lifecycle;
10
11use crate::SchemaBuilderContext;
12
13#[injectable]
14#[async_trait]
15pub trait DynamicGraphSchemaManager: Send + Sync + Lifecycle {
16 fn is_type_system_modified(&self) -> bool;
18
19 fn get_schema_builder_context(&self) -> SchemaBuilderContext;
21
22 fn get_schema_builder(&self) -> SchemaBuilder;
24
25 async fn create_dynamic_schema(&self) -> Result<Schema, SchemaError>;
27
28 fn create_dynamic_schema_sync(&self) -> Result<Schema, SchemaError>;
30
31 async fn regenerate_dynamic_schema(&self) -> Result<(), SchemaError>;
33
34 async fn regenerate_dynamic_schema_if_modified(&self) -> Result<(), SchemaError>;
36
37 async fn get_dynamic_schema(&self) -> Result<Arc<Schema>, SchemaError>;
39}