pub trait LayoutVTablePlugin:
'static
+ Send
+ Sync
+ Debug {
// Required methods
fn as_any(&self) -> &dyn Any;
fn id(&self) -> LayoutEncodingId;
fn build(
&self,
dtype: &DType,
row_count: u64,
metadata: &[u8],
segment_ids: Vec<SegmentId>,
children: &dyn LayoutChildren,
build_ctx: &LayoutBuildContext<'_>,
) -> VortexResult<LayoutRef>;
// Provided method
fn is_indivisible(&self) -> bool { ... }
}Expand description
Object-safe plugin registered for a layout ID.
Required Methods§
Sourcefn id(&self) -> LayoutEncodingId
fn id(&self) -> LayoutEncodingId
Returns the globally unique layout ID.
Sourcefn build(
&self,
dtype: &DType,
row_count: u64,
metadata: &[u8],
segment_ids: Vec<SegmentId>,
children: &dyn LayoutChildren,
build_ctx: &LayoutBuildContext<'_>,
) -> VortexResult<LayoutRef>
fn build( &self, dtype: &DType, row_count: u64, metadata: &[u8], segment_ids: Vec<SegmentId>, children: &dyn LayoutChildren, build_ctx: &LayoutBuildContext<'_>, ) -> VortexResult<LayoutRef>
Deserializes a layout node.
Provided Methods§
Sourcefn is_indivisible(&self) -> bool
fn is_indivisible(&self) -> bool
Returns true if this layout is indivisible: its readers never register natural split
boundaries strictly inside their row range (see VTable::is_indivisible).
Implementations§
Trait Implementations§
Source§impl Display for dyn LayoutVTablePlugin + '_
impl Display for dyn LayoutVTablePlugin + '_
impl Eq for dyn LayoutVTablePlugin + '_
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".