Skip to main content

Segment

Trait Segment 

Source
pub trait Segment<Provider>:
    Debug
    + Send
    + Sync {
    // Required methods
    fn segment(&self) -> PruneSegment;
    fn mode(&self) -> Option<PruneMode>;
    fn purpose(&self) -> PrunePurpose;
    fn prune(
        &self,
        provider: &Provider,
        input: PruneInput,
    ) -> Result<SegmentOutput, PrunerError>;

    // Provided methods
    fn save_checkpoint(
        &self,
        provider: &Provider,
        checkpoint: PruneCheckpoint,
    ) -> ProviderResult<()>
       where Provider: PruneCheckpointWriter { ... }
    fn required_stage(&self) -> Option<StageId> { ... }
}
Expand description

A segment represents a pruning of some portion of the data.

Segments are called from Pruner with the following lifecycle:

  1. Call Segment::prune with delete_limit of PruneInput.
  2. If Segment::prune returned a Some in checkpoint of SegmentOutput, call Segment::save_checkpoint.
  3. Subtract pruned of SegmentOutput from delete_limit of next PruneInput.

Required Methods§

Source

fn segment(&self) -> PruneSegment

Segment of data that’s pruned.

Source

fn mode(&self) -> Option<PruneMode>

Prune mode with which the segment was initialized.

Source

fn purpose(&self) -> PrunePurpose

Purpose of the segment.

Source

fn prune( &self, provider: &Provider, input: PruneInput, ) -> Result<SegmentOutput, PrunerError>

Prune data for Self::segment using the provided input.

Provided Methods§

Source

fn save_checkpoint( &self, provider: &Provider, checkpoint: PruneCheckpoint, ) -> ProviderResult<()>
where Provider: PruneCheckpointWriter,

Save checkpoint for Self::segment to the database.

Source

fn required_stage(&self) -> Option<StageId>

Returns the stage this segment depends on, if any.

If this returns Some(stage_id), the pruner will skip this segment if the stage has not yet caught up with the Finish stage checkpoint.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§