Struct substrate::layout::Instance

source ·
pub struct Instance<T: ExportsLayoutData> { /* private fields */ }
Expand description

A generic layout instance.

Stores a pointer to its underlying cell and its instantiated transformation.

Implementations§

source§

impl<T: ExportsLayoutData> Instance<T>

source

pub fn try_cell(&self) -> Result<Transformed<Cell<T>>>

Tries to access a transformed view of the underlying Cell, blocking on generation.

Blocks until cell generation completes.

The returned object provides coordinates in the parent cell’s coordinate system. If you want coordinates in the child cell’s coordinate system, consider using Instance::try_raw_cell instead.

Returns an error if one was thrown during generation.

source

pub fn cell(&self) -> Transformed<Cell<T>>

Returns a transformed view of the underlying Cell.

Blocks until cell generation completes.

The returned object provides coordinates in the parent cell’s coordinate system. If you want coordinates in the child cell’s coordinate system, consider using Instance::raw_cell instead.

§Panics

Panics if an error was thrown during generation.

source

pub fn try_raw_cell(&self) -> Result<&Cell<T>>

Tries to access a transformed view of the underlying Cell, blocking on generation.

Blocks until cell generation completes.

The returned cell does not store any information related to this instance’s transformation. Consider using Instance::try_cell instead.

Returns an error if one was thrown during generation.

source

pub fn raw_cell(&self) -> &Cell<T>

Returns a transformed view of the underlying Cell.

Blocks until cell generation completes.

The returned cell does not store any information related to this instance’s transformation. Consider using Instance::cell instead.

§Panics

Panics if an error was thrown during generation.

source

pub fn try_data(&self) -> Result<Transformed<T::LayoutData>>

Tries to access extra data created by the cell’s schematic generator.

Blocks until cell generation completes.

Returns an error if one was thrown during generation.

source

pub fn data(&self) -> Transformed<T::LayoutData>

Tries to access extra data created by the cell’s schematic generator.

Blocks until cell generation completes.

§Panics

Panics if an error was thrown during generation.

source

pub fn block(&self) -> &T

Returns the underlying block used to create this instance’s cell.

source

pub fn try_io(&self) -> Result<Transformed<<T::Io as HardwareType>::Bundle>>

Returns a transformed view of the underlying Cell’s IO.

Blocks until cell generation completes.

Returns an error if one was thrown during generation.

source

pub fn io(&self) -> Transformed<<T::Io as HardwareType>::Bundle>

Returns a transformed view of the underlying Cell’s IO.

Blocks until cell generation completes.

§Panics

Panics if an error was thrown during generation.

Trait Implementations§

source§

impl<T: ExportsLayoutData> Bbox for Instance<T>

source§

fn bbox(&self) -> Option<Rect>

Computes the axis-aligned rectangular bounding box. Read more
source§

fn bbox_rect(&self) -> Rect

Computes the axis-aligned rectangular bounding box, panicking if it is empty.
source§

impl<T: ExportsLayoutData> Clone for Instance<T>

source§

fn clone(&self) -> Self

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<PDK: Pdk, I: Layout<PDK>> Draw<PDK> for &Instance<I>

source§

fn draw(self, recv: &mut DrawReceiver<PDK>) -> Result<()>

Draws self inside recv.
source§

impl<PDK: Pdk, I: Layout<PDK>> Draw<PDK> for Instance<I>

source§

fn draw(self, recv: &mut DrawReceiver<PDK>) -> Result<()>

Draws self inside recv.
source§

impl<T: ExportsLayoutData> HasTransformedView for Instance<T>

§

type TransformedView = Instance<T>

An object storing a transformed view of Self.
source§

fn transformed_view(&self, trans: Transformation) -> Self::TransformedView

Produces a transformed view of self.
source§

impl<T: ExportsLayoutData> LayerBbox for Instance<T>

source§

fn layer_bbox(&self, layer: LayerId) -> Option<Rect>

Compute the bounding box considering only objects occupying the given layer.
source§

impl<T: ExportsLayoutData> TransformMut for Instance<T>

source§

fn transform_mut(&mut self, trans: Transformation)

Applies matrix-vector Transformation trans.
source§

impl<T: ExportsLayoutData> TranslateMut for Instance<T>

source§

fn translate_mut(&mut self, p: Point)

Translates the shape by a Point through mutation.
source§

impl<T: ExportsLayoutData> TryFrom<Instance<T>> for RawInstance

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from(value: Instance<T>) -> Result<Self>

Performs the conversion.

Auto Trait Implementations§

§

impl<T> !RefUnwindSafe for Instance<T>

§

impl<T> Send for Instance<T>

§

impl<T> Sync for Instance<T>

§

impl<T> Unpin for Instance<T>

§

impl<T> !UnwindSafe for Instance<T>

Blanket Implementations§

source§

impl<T> AlignBbox for T
where T: AlignBboxMut,

source§

fn align_bbox(self, mode: AlignMode, other: impl Bbox, offset: i64) -> Self

Align self using its bounding box and the bounding box of other. Read more
source§

impl<T> AlignBboxMut for T
where T: AlignRectMut + Bbox,

source§

fn align_bbox_mut(&mut self, mode: AlignMode, other: impl Bbox, offset: i64)

Align self using its bounding box and the bounding box of other. Read more
source§

impl<T> AlignRect for T
where T: AlignRectMut,

source§

fn align(self, mode: AlignMode, srect: Rect, orect: Rect, offset: i64) -> Self

Align self based on the relationship between srect and orect. Read more
source§

impl<T> AlignRectMut for T
where T: Translate,

source§

fn align_mut(&mut self, mode: AlignMode, srect: Rect, orect: Rect, offset: i64)

Align self based on the relationship between srect and orect. Read more
source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T, U> CustomHardwareType<Flipped<T>> for U

source§

fn from_layout_type(other: &Flipped<T>) -> U

Creates this layout type from another layout type.
source§

impl<T, U> CustomHardwareType<InOut<T>> for U

source§

fn from_layout_type(other: &InOut<T>) -> U

Creates this layout type from another layout type.
source§

impl<T, U> CustomHardwareType<Input<T>> for U

source§

fn from_layout_type(other: &Input<T>) -> U

Creates this layout type from another layout type.
source§

impl<T, U> CustomHardwareType<Output<T>> for U

source§

fn from_layout_type(other: &Output<T>) -> U

Creates this layout type from another layout type.
§

impl<T> Downcast for T
where T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<PDK, T> DrawBoxed<PDK> for T
where PDK: Pdk, T: Draw<PDK>,

source§

fn draw_boxed(self: Box<T>, recv: &mut DrawReceiver<PDK>) -> Result<(), Error>

Draws self inside recv.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> FromRef<T> for T
where T: Clone,

§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> IntoRequest<T> for T

source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
source§

impl<T> PlaceBbox for T
where T: PlaceBboxMut,

source§

fn place_bbox(self, mode: PlaceMode, pt: Point) -> Self

Places an object at the given point using its boudning box. Read more
source§

impl<T> PlaceBboxMut for T
where T: PlaceRectMut + Bbox,

source§

fn place_bbox_mut(&mut self, mode: PlaceMode, pt: Point)

Places an object at the given point using its bounding box. Read more
source§

impl<T> PlaceRect for T
where T: PlaceRectMut,

source§

fn place(self, mode: PlaceMode, srect: Rect, pt: Point) -> Self

Places an object at the given point. Read more
source§

impl<T> PlaceRectMut for T
where T: TranslateMut,

source§

fn place_mut(&mut self, mode: PlaceMode, srect: Rect, pt: Point)

Places an object at the given point. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T> Transform for T
where T: TransformMut,

source§

fn transform(self, trans: Transformation) -> Self

Applies matrix-vector Transformation trans. Read more
source§

impl<T> Translate for T
where T: TranslateMut,

source§

fn translate(self, p: Point) -> Self

Translates the shape by a Point through mutation. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
source§

impl<T> Connect<&T> for T

source§

impl<T> Connect<T> for T

source§

impl<T> LayoutData for T

source§

impl<T> Primitive for T
where T: Clone + Send + Sync + Any,

source§

impl<T> Primitive for T

source§

impl<PDK, T> Tileable<PDK> for T
where PDK: Pdk, T: Draw<PDK> + AlignRectMut + Downcast,