substrate::types

Trait Flatten

Source
pub trait Flatten<T>: FlatLen {
    // Required method
    fn flatten<E>(&self, output: &mut E)
       where E: Extend<T>;

    // Provided method
    fn flatten_vec(&self) -> Vec<T> { ... }
}
Expand description

Flatten a structure into a list.

Required Methods§

Source

fn flatten<E>(&self, output: &mut E)
where E: Extend<T>,

Flatten a structure into a list.

Provided Methods§

Source

fn flatten_vec(&self) -> Vec<T>

Flatten into a Vec.

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 Flatten<Direction> for ()

Source§

fn flatten<E>(&self, _output: &mut E)
where E: Extend<Direction>,

Source§

impl Flatten<Node> for ()

Source§

fn flatten<E>(&self, _output: &mut E)
where E: Extend<Node>,

Source§

impl Flatten<Node> for Vec<Node>

Source§

fn flatten<E>(&self, output: &mut E)
where E: Extend<Node>,

Source§

impl Flatten<Terminal> for ()

Source§

fn flatten<E>(&self, _output: &mut E)
where E: Extend<Terminal>,

Source§

impl<L> Flatten<PortGeometry<L>> for ()

Source§

fn flatten<E>(&self, _output: &mut E)
where E: Extend<PortGeometry<L>>,

Source§

impl<L: Clone> Flatten<PortGeometry<L>> for Shape<L>

Source§

fn flatten<E>(&self, output: &mut E)
where E: Extend<PortGeometry<L>>,

Source§

impl<S, T: Flatten<S>> Flatten<S> for &T

Source§

fn flatten<E>(&self, output: &mut E)
where E: Extend<S>,

Implementors§

Source§

impl Flatten<Direction> for DiffPair

Source§

impl Flatten<Direction> for MosIo

Source§

impl Flatten<Direction> for PowerIo

Source§

impl Flatten<Direction> for TestbenchIo

Source§

impl Flatten<Direction> for TwoTerminalIo

Source§

impl Flatten<NestedNode> for NestedNode

Source§

impl Flatten<NestedTerminal> for NestedTerminal

Source§

impl Flatten<Node> for Node

Source§

impl Flatten<Node> for Terminal

Source§

impl Flatten<Terminal> for Terminal

Source§

impl Flatten<NameBuf> for NameTree

Source§

impl<L: Clone> Flatten<PortGeometry<L>> for PortGeometry<L>

Source§

impl<S, T: HasBundleKind + Flatten<S>> Flatten<S> for ArrayBundle<T>

Source§

impl<SubstrateV, SubstrateF> Flatten<SubstrateF> for DiffPairView<SubstrateV>
where InOut<Signal>: HasView<SubstrateV>, <InOut<Signal> as HasView<SubstrateV>>::View: Flatten<SubstrateF>,

Source§

impl<SubstrateV, SubstrateF> Flatten<SubstrateF> for MosIoView<SubstrateV>
where InOut<Signal>: HasView<SubstrateV>, Input<Signal>: HasView<SubstrateV>, <InOut<Signal> as HasView<SubstrateV>>::View: Flatten<SubstrateF>, <Input<Signal> as HasView<SubstrateV>>::View: Flatten<SubstrateF>,

Source§

impl<SubstrateV, SubstrateF> Flatten<SubstrateF> for PowerIoView<SubstrateV>
where InOut<Signal>: HasView<SubstrateV>, <InOut<Signal> as HasView<SubstrateV>>::View: Flatten<SubstrateF>,

Source§

impl<SubstrateV, SubstrateF> Flatten<SubstrateF> for TestbenchIoView<SubstrateV>
where InOut<Signal>: HasView<SubstrateV>, <InOut<Signal> as HasView<SubstrateV>>::View: Flatten<SubstrateF>,

Source§

impl<SubstrateV, SubstrateF> Flatten<SubstrateF> for TwoTerminalIoView<SubstrateV>
where InOut<Signal>: HasView<SubstrateV>, <InOut<Signal> as HasView<SubstrateV>>::View: Flatten<SubstrateF>,

Source§

impl<T: FlatLen> Flatten<Direction> for InOut<T>

Source§

impl<T: FlatLen> Flatten<Direction> for Input<T>

Source§

impl<T: FlatLen> Flatten<Direction> for Output<T>

Source§

impl<T: Flatten<Direction>> Flatten<Direction> for Array<T>

Source§

impl<T: Flatten<Direction>> Flatten<Direction> for Flipped<T>