#[repr(transparent)]pub struct InstanceId(pub u32);Expand description
Undeduped instance identity — one per elaborated instance, distinct even when
two instances share a compiled Template. This is what DEBUGGER/RUNTIME/VPI
address (netlist-analysis.md Decision 3; ledger ST-115, ST-116, PR-075..
PR-077).
#[repr(transparent)] (B-runtime Task 14 deviation, minimal and
additive, documented in docs/CONTRACTS.md): RT-097’s svScope ABI
symbols (vj_runtime::dpi::scope::sv_rt_get_scope/sv_rt_set_scope)
are real extern "C" fns that take/return this type by value. Without an
explicit repr, rustc’s improper_ctypes_definitions lint (deny-by-
default under this workspace’s -D warnings gate) rejects any extern "C" signature naming it. repr(transparent) is a pure, backward-
compatible layout GUARANTEE for this single-field tuple struct (adds a
promise, changes no existing behavior, breaks no existing caller) — never
a semantic change to InstanceId itself.
Tuple Fields§
§0: u32Trait Implementations§
Source§impl Clone for InstanceId
impl Clone for InstanceId
impl Copy for InstanceId
Source§impl Debug for InstanceId
impl Debug for InstanceId
Source§impl<'de> Deserialize<'de> for InstanceId
impl<'de> Deserialize<'de> for InstanceId
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for InstanceId
Source§impl Hash for InstanceId
impl Hash for InstanceId
Source§impl PartialEq for InstanceId
impl PartialEq for InstanceId
Source§impl Serialize for InstanceId
impl Serialize for InstanceId
impl StructuralPartialEq for InstanceId
Auto Trait Implementations§
impl Freeze for InstanceId
impl RefUnwindSafe for InstanceId
impl Send for InstanceId
impl Sync for InstanceId
impl Unpin for InstanceId
impl UnsafeUnpin for InstanceId
impl UnwindSafe for InstanceId
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.