pub struct MosIoView<SubstrateV>{
pub d: <InOut<Signal> as HasView<SubstrateV>>::View,
pub g: <Input<Signal> as HasView<SubstrateV>>::View,
pub s: <InOut<Signal> as HasView<SubstrateV>>::View,
pub b: <InOut<Signal> as HasView<SubstrateV>>::View,
}
Expand description
The interface to a standard 4-terminal MOSFET.
Fields§
§d: <InOut<Signal> as HasView<SubstrateV>>::View
The drain.
g: <Input<Signal> as HasView<SubstrateV>>::View
The gate.
s: <InOut<Signal> as HasView<SubstrateV>>::View
The source.
b: <InOut<Signal> as HasView<SubstrateV>>::View
The body.
Implementations§
Source§impl MosIoView<NodeBundle>where
InOut<Signal>: HasSchematicBundleKindViews,
Input<Signal>: HasSchematicBundleKindViews,
Self: HasBundleKind<BundleKind: SchematicBundleKind<NodeBundle = Self>>,
impl MosIoView<NodeBundle>where
InOut<Signal>: HasSchematicBundleKindViews,
Input<Signal>: HasSchematicBundleKindViews,
Self: HasBundleKind<BundleKind: SchematicBundleKind<NodeBundle = Self>>,
Sourcepub fn view_as<SubstrateT: HasBundleKind<BundleKind: SchematicBundleKind>>(
&self,
) -> NodeBundle<<SubstrateT as HasBundleKind>::BundleKind>
pub fn view_as<SubstrateT: HasBundleKind<BundleKind: SchematicBundleKind>>( &self, ) -> NodeBundle<<SubstrateT as HasBundleKind>::BundleKind>
Views this bundle as a bundle of a different kind.
Source§impl MosIoView<TerminalBundle>where
InOut<Signal>: HasSchematicBundleKindViews,
Input<Signal>: HasSchematicBundleKindViews,
Self: HasBundleKind<BundleKind: SchematicBundleKind<TerminalBundle = Self>>,
impl MosIoView<TerminalBundle>where
InOut<Signal>: HasSchematicBundleKindViews,
Input<Signal>: HasSchematicBundleKindViews,
Self: HasBundleKind<BundleKind: SchematicBundleKind<TerminalBundle = Self>>,
Sourcepub fn view_as<SubstrateT: HasBundleKind<BundleKind: SchematicBundleKind>>(
&self,
) -> TerminalBundle<<SubstrateT as HasBundleKind>::BundleKind>
pub fn view_as<SubstrateT: HasBundleKind<BundleKind: SchematicBundleKind>>( &self, ) -> TerminalBundle<<SubstrateT as HasBundleKind>::BundleKind>
Views this bundle as a bundle of a different kind.
Sourcepub fn node_bundle(&self) -> NodeBundle<<Self as HasBundleKind>::BundleKind>
pub fn node_bundle(&self) -> NodeBundle<<Self as HasBundleKind>::BundleKind>
Views this terminal bundle as a node bundle of the same kind.
Trait Implementations§
Source§impl<SubstrateV> HasBundleKind for MosIoView<SubstrateV>where
InOut<Signal>: HasView<SubstrateV> + HasBundleKind,
Input<Signal>: HasView<SubstrateV> + HasBundleKind,
<InOut<Signal> as HasView<SubstrateV>>::View: HasBundleKind<BundleKind = <InOut<Signal> as HasBundleKind>::BundleKind> + HasBundleKind,
<Input<Signal> as HasView<SubstrateV>>::View: HasBundleKind<BundleKind = <Input<Signal> as HasBundleKind>::BundleKind> + HasBundleKind,
impl<SubstrateV> HasBundleKind for MosIoView<SubstrateV>where
InOut<Signal>: HasView<SubstrateV> + HasBundleKind,
Input<Signal>: HasView<SubstrateV> + HasBundleKind,
<InOut<Signal> as HasView<SubstrateV>>::View: HasBundleKind<BundleKind = <InOut<Signal> as HasBundleKind>::BundleKind> + HasBundleKind,
<Input<Signal> as HasView<SubstrateV>>::View: HasBundleKind<BundleKind = <Input<Signal> as HasBundleKind>::BundleKind> + HasBundleKind,
Source§type BundleKind = MosIoKind
type BundleKind = MosIoKind
The Rust type of the
BundleKind
associated with this bundle.Source§fn kind(&self) -> <Self as HasBundleKind>::BundleKind
fn kind(&self) -> <Self as HasBundleKind>::BundleKind
Returns the
BundleKind
of this bundle.Source§impl HasNestedView for MosIoView<NestedNodeBundle>where
InOut<Signal>: HasSchematicBundleKindViews,
Input<Signal>: HasSchematicBundleKindViews,
<InOut<Signal> as HasView<NestedNodeBundle>>::View: HasNestedView<NestedView = <InOut<Signal> as HasView<NestedNodeBundle>>::View> + HasNestedView,
<Input<Signal> as HasView<NestedNodeBundle>>::View: HasNestedView<NestedView = <Input<Signal> as HasView<NestedNodeBundle>>::View> + HasNestedView,
impl HasNestedView for MosIoView<NestedNodeBundle>where
InOut<Signal>: HasSchematicBundleKindViews,
Input<Signal>: HasSchematicBundleKindViews,
<InOut<Signal> as HasView<NestedNodeBundle>>::View: HasNestedView<NestedView = <InOut<Signal> as HasView<NestedNodeBundle>>::View> + HasNestedView,
<Input<Signal> as HasView<NestedNodeBundle>>::View: HasNestedView<NestedView = <Input<Signal> as HasView<NestedNodeBundle>>::View> + HasNestedView,
Source§type NestedView = MosIoView<NestedNodeBundle>
type NestedView = MosIoView<NestedNodeBundle>
A view of the nested object. Read more
Source§fn nested_view(&self, __substrate_parent: &InstancePath) -> NestedView<Self>
fn nested_view(&self, __substrate_parent: &InstancePath) -> NestedView<Self>
Creates a nested view of the object given a parent node.
Source§impl HasNestedView for MosIoView<NestedTerminalBundle>where
InOut<Signal>: HasSchematicBundleKindViews,
Input<Signal>: HasSchematicBundleKindViews,
<InOut<Signal> as HasView<NestedTerminalBundle>>::View: HasNestedView<NestedView = <InOut<Signal> as HasView<NestedTerminalBundle>>::View> + HasNestedView,
<Input<Signal> as HasView<NestedTerminalBundle>>::View: HasNestedView<NestedView = <Input<Signal> as HasView<NestedTerminalBundle>>::View> + HasNestedView,
impl HasNestedView for MosIoView<NestedTerminalBundle>where
InOut<Signal>: HasSchematicBundleKindViews,
Input<Signal>: HasSchematicBundleKindViews,
<InOut<Signal> as HasView<NestedTerminalBundle>>::View: HasNestedView<NestedView = <InOut<Signal> as HasView<NestedTerminalBundle>>::View> + HasNestedView,
<Input<Signal> as HasView<NestedTerminalBundle>>::View: HasNestedView<NestedView = <Input<Signal> as HasView<NestedTerminalBundle>>::View> + HasNestedView,
Source§type NestedView = MosIoView<NestedTerminalBundle>
type NestedView = MosIoView<NestedTerminalBundle>
A view of the nested object. Read more
Source§fn nested_view(&self, __substrate_parent: &InstancePath) -> NestedView<Self>
fn nested_view(&self, __substrate_parent: &InstancePath) -> NestedView<Self>
Creates a nested view of the object given a parent node.
Source§impl HasNestedView for MosIoView<NodeBundle>where
InOut<Signal>: HasSchematicBundleKindViews,
Input<Signal>: HasSchematicBundleKindViews,
<InOut<Signal> as HasView<NodeBundle>>::View: HasNestedView,
<Input<Signal> as HasView<NodeBundle>>::View: HasNestedView,
impl HasNestedView for MosIoView<NodeBundle>where
InOut<Signal>: HasSchematicBundleKindViews,
Input<Signal>: HasSchematicBundleKindViews,
<InOut<Signal> as HasView<NodeBundle>>::View: HasNestedView,
<Input<Signal> as HasView<NodeBundle>>::View: HasNestedView,
Source§type NestedView = MosIoView<NestedNodeBundle>
type NestedView = MosIoView<NestedNodeBundle>
A view of the nested object. Read more
Source§fn nested_view(&self, __substrate_parent: &InstancePath) -> NestedView<Self>
fn nested_view(&self, __substrate_parent: &InstancePath) -> NestedView<Self>
Creates a nested view of the object given a parent node.
Source§impl HasNestedView for MosIoView<TerminalBundle>where
InOut<Signal>: HasSchematicBundleKindViews,
Input<Signal>: HasSchematicBundleKindViews,
<InOut<Signal> as HasView<TerminalBundle>>::View: HasNestedView,
<Input<Signal> as HasView<TerminalBundle>>::View: HasNestedView,
impl HasNestedView for MosIoView<TerminalBundle>where
InOut<Signal>: HasSchematicBundleKindViews,
Input<Signal>: HasSchematicBundleKindViews,
<InOut<Signal> as HasView<TerminalBundle>>::View: HasNestedView,
<Input<Signal> as HasView<TerminalBundle>>::View: HasNestedView,
Source§type NestedView = MosIoView<NestedTerminalBundle>
type NestedView = MosIoView<NestedTerminalBundle>
A view of the nested object. Read more
Source§fn nested_view(&self, __substrate_parent: &InstancePath) -> NestedView<Self>
fn nested_view(&self, __substrate_parent: &InstancePath) -> NestedView<Self>
Creates a nested view of the object given a parent node.
Source§impl<SubstrateS, SubstrateA> Save<SubstrateS, SubstrateA> for MosIoView<NestedNodeBundle>
impl<SubstrateS, SubstrateA> Save<SubstrateS, SubstrateA> for MosIoView<NestedNodeBundle>
Source§type SaveKey = MosIoView<NestedNodeSaveKeyView<SubstrateS, SubstrateA>>
type SaveKey = MosIoView<NestedNodeSaveKeyView<SubstrateS, SubstrateA>>
The key type used to address the saved output within the analysis. Read more
Source§type Saved = MosIoView<NestedNodeSavedView<SubstrateS, SubstrateA>>
type Saved = MosIoView<NestedNodeSavedView<SubstrateS, SubstrateA>>
The saved data associated with things object.
Source§fn save(
&self,
__substrate_ctx: &SimulationContext<SubstrateS>,
__substrate_opts: &mut <SubstrateS as Simulator>::Options,
) -> <Self as Save<SubstrateS, SubstrateA>>::SaveKey
fn save( &self, __substrate_ctx: &SimulationContext<SubstrateS>, __substrate_opts: &mut <SubstrateS as Simulator>::Options, ) -> <Self as Save<SubstrateS, SubstrateA>>::SaveKey
Marks the given output for saving, returning a key that can be used to recover
the output once the simulation is complete.
Source§impl<SubstrateS, SubstrateA> Save<SubstrateS, SubstrateA> for MosIoView<NestedTerminalBundle>where
InOut<Signal>: HasView<NestedTerminalBundle>,
Input<Signal>: HasView<NestedTerminalBundle>,
<InOut<Signal> as HasView<NestedTerminalBundle>>::View: Save<SubstrateS, SubstrateA>,
<Input<Signal> as HasView<NestedTerminalBundle>>::View: Save<SubstrateS, SubstrateA>,
SubstrateS: Simulator,
SubstrateA: Analysis,
impl<SubstrateS, SubstrateA> Save<SubstrateS, SubstrateA> for MosIoView<NestedTerminalBundle>where
InOut<Signal>: HasView<NestedTerminalBundle>,
Input<Signal>: HasView<NestedTerminalBundle>,
<InOut<Signal> as HasView<NestedTerminalBundle>>::View: Save<SubstrateS, SubstrateA>,
<Input<Signal> as HasView<NestedTerminalBundle>>::View: Save<SubstrateS, SubstrateA>,
SubstrateS: Simulator,
SubstrateA: Analysis,
Source§type SaveKey = MosIoView<NestedTerminalSaveKeyView<SubstrateS, SubstrateA>>
type SaveKey = MosIoView<NestedTerminalSaveKeyView<SubstrateS, SubstrateA>>
The key type used to address the saved output within the analysis. Read more
Source§type Saved = MosIoView<NestedTerminalSavedView<SubstrateS, SubstrateA>>
type Saved = MosIoView<NestedTerminalSavedView<SubstrateS, SubstrateA>>
The saved data associated with things object.
Source§fn save(
&self,
__substrate_ctx: &SimulationContext<SubstrateS>,
__substrate_opts: &mut <SubstrateS as Simulator>::Options,
) -> <Self as Save<SubstrateS, SubstrateA>>::SaveKey
fn save( &self, __substrate_ctx: &SimulationContext<SubstrateS>, __substrate_opts: &mut <SubstrateS as Simulator>::Options, ) -> <Self as Save<SubstrateS, SubstrateA>>::SaveKey
Marks the given output for saving, returning a key that can be used to recover
the output once the simulation is complete.
Source§impl<SubstrateV> TransformRef for MosIoView<SubstrateV>where
InOut<Signal>: HasView<SubstrateV>,
Input<Signal>: HasView<SubstrateV>,
<InOut<Signal> as HasView<SubstrateV>>::View: TransformRef,
<Input<Signal> as HasView<SubstrateV>>::View: TransformRef,
impl<SubstrateV> TransformRef for MosIoView<SubstrateV>where
InOut<Signal>: HasView<SubstrateV>,
Input<Signal>: HasView<SubstrateV>,
<InOut<Signal> as HasView<SubstrateV>>::View: TransformRef,
<Input<Signal> as HasView<SubstrateV>>::View: TransformRef,
Source§fn transform_ref(&self, __substrate_transformation: Transformation) -> Self
fn transform_ref(&self, __substrate_transformation: Transformation) -> Self
Applies matrix-vector
Transformation
trans
.Source§impl<SubstrateV> TranslateRef for MosIoView<SubstrateV>where
InOut<Signal>: HasView<SubstrateV>,
Input<Signal>: HasView<SubstrateV>,
<InOut<Signal> as HasView<SubstrateV>>::View: TranslateRef,
<Input<Signal> as HasView<SubstrateV>>::View: TranslateRef,
impl<SubstrateV> TranslateRef for MosIoView<SubstrateV>where
InOut<Signal>: HasView<SubstrateV>,
Input<Signal>: HasView<SubstrateV>,
<InOut<Signal> as HasView<SubstrateV>>::View: TranslateRef,
<Input<Signal> as HasView<SubstrateV>>::View: TranslateRef,
Source§fn translate_ref(&self, __substrate_point: Point) -> Self
fn translate_ref(&self, __substrate_point: Point) -> Self
Translates the shape by
Point
, returning a new shape.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>,
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>,
Auto Trait Implementations§
impl<SubstrateV> !Freeze for MosIoView<SubstrateV>
impl<SubstrateV> !RefUnwindSafe for MosIoView<SubstrateV>
impl<SubstrateV> !Send for MosIoView<SubstrateV>
impl<SubstrateV> !Sync for MosIoView<SubstrateV>
impl<SubstrateV> !Unpin for MosIoView<SubstrateV>
impl<SubstrateV> !UnwindSafe for MosIoView<SubstrateV>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Converts
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
, which can then be
downcast
into Box<dyn ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Converts
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
, which can then be further
downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Converts
&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)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Converts
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.§impl<T> DowncastSend for T
impl<T> DowncastSend for T
§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T
in a tonic::Request