pub struct SerdeModel { /* private fields */ }Expand description
A model that is de/serializable using serde.
To turn this into a rewritable model, it needs to be initialised using initialise.
To deserialise a Model, use .into() to convert it into a SerdeModel first.
Implementations§
Source§impl SerdeModel
impl SerdeModel
Source§impl SerdeModel
impl SerdeModel
Sourcepub fn collect_stable_id_mapping(&self) -> HashMap<ObjId, ObjId>
pub fn collect_stable_id_mapping(&self) -> HashMap<ObjId, ObjId>
Collects all ObjId values from the model using uniplate traversal.
Traverses the model structure using universe_bi to collect IDs from:
- All SubModels (to get SymbolTable IDs via
HasId) - All DeclarationPtrs (to get declaration IDs via
HasId)
Returns a mapping from original ID to stable sequential ID (0, 1, 2, …). IDs are assigned in the order they are encountered during traversal, ensuring stability across identical model structures.
Trait Implementations§
Source§impl Clone for SerdeModel
impl Clone for SerdeModel
Source§fn clone(&self) -> SerdeModel
fn clone(&self) -> SerdeModel
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for SerdeModel
impl Debug for SerdeModel
Source§impl<'de> Deserialize<'de> for SerdeModel
impl<'de> Deserialize<'de> for SerdeModel
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>,
Source§impl Display for SerdeModel
impl Display for SerdeModel
Source§impl From<Model> for SerdeModel
impl From<Model> for SerdeModel
Auto Trait Implementations§
impl Freeze for SerdeModel
impl !RefUnwindSafe for SerdeModel
impl !Send for SerdeModel
impl !Sync for SerdeModel
impl Unpin for SerdeModel
impl !UnwindSafe for SerdeModel
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§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> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 168 bytes