pub trait Layout: Block {
type Schema: Schema;
type Bundle: LayoutBundle<Self::Schema> + HasBundleKind<BundleKind = IoKind<Self>>;
type Data: LayoutData;
// Required method
fn layout(
&self,
cell: &mut CellBuilder<Self::Schema>,
) -> Result<(Self::Bundle, Self::Data)>;
}
Expand description
A block that can be laid out in a given layout Schema
.
Required Associated Types§
Sourcetype Bundle: LayoutBundle<Self::Schema> + HasBundleKind<BundleKind = IoKind<Self>>
type Bundle: LayoutBundle<Self::Schema> + HasBundleKind<BundleKind = IoKind<Self>>
The bundle representing this block’s layout IO.
Sourcetype Data: LayoutData
type Data: LayoutData
Extra data to be shared with other blocks that instantiate this block’s layout.
Required Methods§
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.