pub struct CanonicalOperationProcessor { /* private fields */ }Expand description
Canonical operation processor that optimizes and filters operations
Implementations§
Source§impl CanonicalOperationProcessor
impl CanonicalOperationProcessor
Sourcepub fn new(
input_schema: HashSet<String>,
output_schema: HashSet<String>,
) -> CanonicalOperationProcessor
pub fn new( input_schema: HashSet<String>, output_schema: HashSet<String>, ) -> CanonicalOperationProcessor
Create a new canonical operation processor with input and output schemas.
Sourcepub fn add_operation(&mut self, op: DsonOperation)
pub fn add_operation(&mut self, op: DsonOperation)
Add an operation to be processed
Sourcepub fn compute_canonical(&mut self) -> Result<&[DsonOperation], DsonError>
pub fn compute_canonical(&mut self) -> Result<&[DsonOperation], DsonError>
Compute canonical operation sequence
§Errors
Returns an error if an operation is invalid, such as:
- Modifying a non-existent field
- Modifying a deleted field
Auto Trait Implementations§
impl Freeze for CanonicalOperationProcessor
impl RefUnwindSafe for CanonicalOperationProcessor
impl Send for CanonicalOperationProcessor
impl Sync for CanonicalOperationProcessor
impl Unpin for CanonicalOperationProcessor
impl UnwindSafe for CanonicalOperationProcessor
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more