substrate::types

Trait Unflatten

Source
pub trait Unflatten<D, T>: FlatLen + Sized {
    // Required method
    fn unflatten<I>(data: &D, source: &mut I) -> Option<Self>
       where I: Iterator<Item = T>;
}
Expand description

Unflatten a structure from an iterator.

Required Methods§

Source

fn unflatten<I>(data: &D, source: &mut I) -> Option<Self>
where I: Iterator<Item = T>,

Unflatten a structure from an iterator.

A correct implementation must only return None if the iterator has insufficient elements. Returning None for any other reason is a logic error. Unsafe code should not rely on implementations of this method being correct.

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.

Implementations on Foreign Types§

Source§

impl<D, T> Unflatten<D, T> for ()

Source§

fn unflatten<I>(_data: &D, _source: &mut I) -> Option<Self>
where I: Iterator<Item = T>,

Implementors§

Source§

impl Unflatten<Signal, Node> for Node

Source§

impl Unflatten<Signal, Terminal> for Terminal

Source§

impl<L> Unflatten<Signal, PortGeometry<L>> for PortGeometry<L>

Source§

impl<S, T: HasBundleKind + Unflatten<<T as HasBundleKind>::BundleKind, S>> Unflatten<Array<<T as HasBundleKind>::BundleKind>, S> for ArrayBundle<T>

Source§

impl<SubstrateV, SubstrateS> Unflatten<DiffPairKind, SubstrateS> for DiffPairView<SubstrateV>
where InOut<Signal>: HasView<SubstrateV> + HasBundleKind, <InOut<Signal> as HasView<SubstrateV>>::View: Unflatten<<InOut<Signal> as HasBundleKind>::BundleKind, SubstrateS>,

Source§

impl<SubstrateV, SubstrateS> Unflatten<MosIoKind, SubstrateS> for MosIoView<SubstrateV>
where InOut<Signal>: HasView<SubstrateV> + HasBundleKind, Input<Signal>: HasView<SubstrateV> + HasBundleKind, <InOut<Signal> as HasView<SubstrateV>>::View: Unflatten<<InOut<Signal> as HasBundleKind>::BundleKind, SubstrateS>, <Input<Signal> as HasView<SubstrateV>>::View: Unflatten<<Input<Signal> as HasBundleKind>::BundleKind, SubstrateS>,

Source§

impl<SubstrateV, SubstrateS> Unflatten<PowerIoKind, SubstrateS> for PowerIoView<SubstrateV>
where InOut<Signal>: HasView<SubstrateV> + HasBundleKind, <InOut<Signal> as HasView<SubstrateV>>::View: Unflatten<<InOut<Signal> as HasBundleKind>::BundleKind, SubstrateS>,

Source§

impl<SubstrateV, SubstrateS> Unflatten<TestbenchIoKind, SubstrateS> for TestbenchIoView<SubstrateV>
where InOut<Signal>: HasView<SubstrateV> + HasBundleKind, <InOut<Signal> as HasView<SubstrateV>>::View: Unflatten<<InOut<Signal> as HasBundleKind>::BundleKind, SubstrateS>,

Source§

impl<SubstrateV, SubstrateS> Unflatten<TwoTerminalIoKind, SubstrateS> for TwoTerminalIoView<SubstrateV>
where InOut<Signal>: HasView<SubstrateV> + HasBundleKind, <InOut<Signal> as HasView<SubstrateV>>::View: Unflatten<<InOut<Signal> as HasBundleKind>::BundleKind, SubstrateS>,