pub trait FoldDocument<'a>: FoldNode<'a> {
// Required method
fn fold_operation<'b, F: Folder<'a>>(
&'a self,
ctx: &'a ASTContext,
operation: Option<&'a str>,
folder: &'b mut F,
) -> Result<&'a Self>;
}Expand description
Trait for folding a GraphQL Document AST Node by traversing an operation instead of the entire
AST tree. This method alters the traversal of the folder and traverses starting from an operation
instead; folding the fragment definitions only as they’re used and refered to using
FragmentSpread nodes in the operation.
If a Document should instead be transformed and copied in its entirety then Document::fold is
a better choice.
Required Methods§
Sourcefn fold_operation<'b, F: Folder<'a>>(
&'a self,
ctx: &'a ASTContext,
operation: Option<&'a str>,
folder: &'b mut F,
) -> Result<&'a Self>
fn fold_operation<'b, F: Folder<'a>>( &'a self, ctx: &'a ASTContext, operation: Option<&'a str>, folder: &'b mut F, ) -> Result<&'a Self>
Folds a GraphQL document by a given operation instead. Instead of transforming the given
document in its entirety fold_operation will start at the defined operation instead,
transforming fragments only as they’re referred to via FragmentSpread nodes. This will
create a new document that only refers to and contains the specified operation.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.