pub enum PdkUnsupported {
NoSramMacros {
pdk: &'static str,
},
NoDualPortMacro {
pdk: &'static str,
},
NoMultiCornerMacro {
pdk: &'static str,
best: &'static str,
},
ExceedsUserArea {
needed_mm2: f64,
available_mm2: f64,
},
VehicleUncharacterized {
pdk: &'static str,
},
}Expand description
Why a process cannot build what was asked for. Typed, so a caller cannot mistake a refusal for a plan — the mistake that produces a design nobody can fabricate.
Variants§
NoSramMacros
The process ships no SRAM macro at all; the memory would have to be flip-flops.
NoDualPortMacro
No macro offers the required port count.
NoMultiCornerMacro
A multi-corner claim was requested but every usable macro ships a single corner.
ExceedsUserArea
The plan does not fit the vehicle’s user area.
VehicleUncharacterized
A user macro for this process’s vehicle was requested, but the vehicle’s power nets and the layer ceiling a macro must stay under have not been read here.
Trait Implementations§
Source§impl Clone for PdkUnsupported
impl Clone for PdkUnsupported
Source§fn clone(&self) -> PdkUnsupported
fn clone(&self) -> PdkUnsupported
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for PdkUnsupported
impl Debug for PdkUnsupported
Source§impl Display for PdkUnsupported
impl Display for PdkUnsupported
Source§impl PartialEq for PdkUnsupported
impl PartialEq for PdkUnsupported
impl StructuralPartialEq for PdkUnsupported
Auto Trait Implementations§
impl Freeze for PdkUnsupported
impl RefUnwindSafe for PdkUnsupported
impl Send for PdkUnsupported
impl Sync for PdkUnsupported
impl Unpin for PdkUnsupported
impl UnsafeUnpin for PdkUnsupported
impl UnwindSafe for PdkUnsupported
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§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>
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>
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)
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)
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.