pub trait MastForestContributor {
// Required methods
fn add_to_forest(
self,
forest: &mut MastForest,
) -> Result<MastNodeId, MastForestError>;
fn fingerprint_for_node(
&self,
forest: &MastForest,
hash_by_node_id: &impl LookupByIdx<MastNodeId, MastNodeFingerprint>,
) -> Result<MastNodeFingerprint, MastForestError>;
fn remap_children(
self,
remapping: &impl LookupByIdx<MastNodeId, MastNodeId>,
) -> Self;
fn with_before_enter(self, _decorators: impl Into<Vec<DecoratorId>>) -> Self;
fn with_after_exit(self, _decorators: impl Into<Vec<DecoratorId>>) -> Self;
fn append_before_enter(
&mut self,
decorators: impl IntoIterator<Item = DecoratorId>,
);
fn append_after_exit(
&mut self,
decorators: impl IntoIterator<Item = DecoratorId>,
);
fn with_digest(self, digest: Word) -> Self;
}Required Methods§
fn add_to_forest( self, forest: &mut MastForest, ) -> Result<MastNodeId, MastForestError>
Sourcefn fingerprint_for_node(
&self,
forest: &MastForest,
hash_by_node_id: &impl LookupByIdx<MastNodeId, MastNodeFingerprint>,
) -> Result<MastNodeFingerprint, MastForestError>
fn fingerprint_for_node( &self, forest: &MastForest, hash_by_node_id: &impl LookupByIdx<MastNodeId, MastNodeFingerprint>, ) -> Result<MastNodeFingerprint, MastForestError>
Returns the fingerprint for this builder without constructing a MastNode.
This method computes the fingerprint for a node directly from the builder data without first constructing a MastNode, providing the same result as the traditional fingerprint computation approach.
Sourcefn remap_children(
self,
remapping: &impl LookupByIdx<MastNodeId, MastNodeId>,
) -> Self
fn remap_children( self, remapping: &impl LookupByIdx<MastNodeId, MastNodeId>, ) -> Self
Remap the node children to their new positions indicated by the given lookup.
Sourcefn with_before_enter(self, _decorators: impl Into<Vec<DecoratorId>>) -> Self
fn with_before_enter(self, _decorators: impl Into<Vec<DecoratorId>>) -> Self
Adds decorators to be executed before this node.
Sourcefn with_after_exit(self, _decorators: impl Into<Vec<DecoratorId>>) -> Self
fn with_after_exit(self, _decorators: impl Into<Vec<DecoratorId>>) -> Self
Adds decorators to be executed after this node.
Sourcefn append_before_enter(
&mut self,
decorators: impl IntoIterator<Item = DecoratorId>,
)
fn append_before_enter( &mut self, decorators: impl IntoIterator<Item = DecoratorId>, )
Appends decorators to be executed before this node.
Unlike with_before_enter, this method adds to the existing list of decorators
rather than replacing them.
Sourcefn append_after_exit(
&mut self,
decorators: impl IntoIterator<Item = DecoratorId>,
)
fn append_after_exit( &mut self, decorators: impl IntoIterator<Item = DecoratorId>, )
Appends decorators to be executed after this node.
Unlike with_after_exit, this method adds to the existing list of decorators
rather than replacing them.
Sourcefn with_digest(self, digest: Word) -> Self
fn with_digest(self, digest: Word) -> Self
Sets a digest to be forced into the built node.
When a digest is set, the builder will use this digest instead of computing the normal digest for the node during the build() 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.