use crate::operation::ExecutableDocumentBuilder;
use crate::operation::FragmentRegistry;
use crate::operation::Operation;
use crate::schema::Schema;
#[derive(Clone, Debug)]
pub struct ExecutableDocument<'schema: 'fragreg, 'fragreg> {
pub(super) fragment_registry: &'fragreg FragmentRegistry<'schema>,
pub(super) operations: Vec<Operation<'schema, 'fragreg>>,
pub(super) schema: &'schema Schema,
}
impl<'schema, 'fragreg> ExecutableDocument<'schema, 'fragreg> {
pub fn builder(
schema: &'schema Schema,
fragment_registry: &'fragreg FragmentRegistry<'schema>,
) -> ExecutableDocumentBuilder<'schema, 'fragreg> {
ExecutableDocumentBuilder::new(schema, fragment_registry)
}
pub fn fragment_registry(&self) -> &'fragreg FragmentRegistry<'schema> {
self.fragment_registry
}
pub fn operations(&self) -> &Vec<Operation<'schema, 'fragreg>> {
&self.operations
}
pub fn schema(&self) -> &'schema Schema {
self.schema
}
}