Enum TableDataOwned
pub enum TableDataOwned {
Show 53 variants
Module(ModuleRaw),
TypeRef(TypeRefRaw),
TypeDef(TypeDefRaw),
FieldPtr(FieldPtrRaw),
Field(FieldRaw),
MethodPtr(MethodPtrRaw),
MethodDef(MethodDefRaw),
ParamPtr(ParamPtrRaw),
Param(ParamRaw),
InterfaceImpl(InterfaceImplRaw),
MemberRef(MemberRefRaw),
Constant(ConstantRaw),
CustomAttribute(CustomAttributeRaw),
FieldMarshal(FieldMarshalRaw),
DeclSecurity(DeclSecurityRaw),
Document(DocumentRaw),
MethodDebugInformation(MethodDebugInformationRaw),
LocalScope(LocalScopeRaw),
LocalVariable(LocalVariableRaw),
LocalConstant(LocalConstantRaw),
ImportScope(ImportScopeRaw),
StateMachineMethod(StateMachineMethodRaw),
CustomDebugInformation(CustomDebugInformationRaw),
EncLog(EncLogRaw),
EncMap(EncMapRaw),
ClassLayout(ClassLayoutRaw),
FieldLayout(FieldLayoutRaw),
StandAloneSig(StandAloneSigRaw),
EventMap(EventMapRaw),
EventPtr(EventPtrRaw),
Event(EventRaw),
PropertyMap(PropertyMapRaw),
PropertyPtr(PropertyPtrRaw),
Property(PropertyRaw),
MethodSemantics(MethodSemanticsRaw),
MethodImpl(MethodImplRaw),
ModuleRef(ModuleRefRaw),
TypeSpec(TypeSpecRaw),
ImplMap(ImplMapRaw),
FieldRVA(FieldRvaRaw),
Assembly(AssemblyRaw),
AssemblyProcessor(AssemblyProcessorRaw),
AssemblyOS(AssemblyOsRaw),
AssemblyRef(AssemblyRefRaw),
AssemblyRefProcessor(AssemblyRefProcessorRaw),
AssemblyRefOS(AssemblyRefOsRaw),
File(FileRaw),
ExportedType(ExportedTypeRaw),
ManifestResource(ManifestResourceRaw),
NestedClass(NestedClassRaw),
GenericParam(GenericParamRaw),
MethodSpec(MethodSpecRaw),
GenericParamConstraint(GenericParamConstraintRaw),
}Expand description
Owned table data for mutable operations, mirroring the read-only TableData<'a> enum.
This enum contains owned instances of all metadata table row types, allowing
heterogeneous storage while maintaining type safety. Unlike TableData<'a>, this
version owns the data and has no lifetime constraints, making it suitable for
modification operations.
The structure mirrors the existing 39 table variants in TableData<'a> but uses
owned data types instead of borrowed references to the original file data.
Variants§
Module(ModuleRaw)
Module table (0x00) - assembly module information
TypeRef(TypeRefRaw)
TypeRef table (0x01) - references to external types
TypeDef(TypeDefRaw)
TypeDef table (0x02) - type definitions within this assembly
FieldPtr(FieldPtrRaw)
FieldPtr table (0x03) - field pointer table (rarely used)
Field(FieldRaw)
Field table (0x04) - field definitions
MethodPtr(MethodPtrRaw)
MethodPtr table (0x05) - method pointer table (rarely used)
MethodDef(MethodDefRaw)
MethodDef table (0x06) - method definitions
ParamPtr(ParamPtrRaw)
ParamPtr table (0x07) - parameter pointer table (rarely used)
Param(ParamRaw)
Param table (0x08) - method parameter information
InterfaceImpl(InterfaceImplRaw)
InterfaceImpl table (0x09) - interface implementations
MemberRef(MemberRefRaw)
MemberRef table (0x0A) - references to type members
Constant(ConstantRaw)
Constant table (0x0B) - compile-time constant values
CustomAttribute(CustomAttributeRaw)
CustomAttribute table (0x0C) - custom attribute instances
FieldMarshal(FieldMarshalRaw)
FieldMarshal table (0x0D) - field marshaling information
DeclSecurity(DeclSecurityRaw)
DeclSecurity table (0x0E) - declarative security attributes
Document(DocumentRaw)
Document table (0x30) - source document information
MethodDebugInformation(MethodDebugInformationRaw)
MethodDebugInformation table (0x31) - debug info for methods
LocalScope(LocalScopeRaw)
LocalScope table (0x32) - local variable scope information
LocalVariable(LocalVariableRaw)
LocalVariable table (0x33) - local variable debug information
LocalConstant(LocalConstantRaw)
LocalConstant table (0x34) - local constant debug information
ImportScope(ImportScopeRaw)
ImportScope table (0x35) - import scope debug information
StateMachineMethod(StateMachineMethodRaw)
StateMachineMethod table (0x36) - async state machine methods
CustomDebugInformation(CustomDebugInformationRaw)
CustomDebugInformation table (0x37) - custom debug information
EncLog(EncLogRaw)
EncLog table (0x3E) - edit-and-continue log
EncMap(EncMapRaw)
EncMap table (0x3F) - edit-and-continue mapping
ClassLayout(ClassLayoutRaw)
ClassLayout table (0x0F) - class layout information
FieldLayout(FieldLayoutRaw)
FieldLayout table (0x10) - field layout information
StandAloneSig(StandAloneSigRaw)
StandAloneSig table (0x11) - standalone signatures
EventMap(EventMapRaw)
EventMap table (0x12) - maps types to their events
EventPtr(EventPtrRaw)
EventPtr table (0x13) - event pointer table (rarely used)
Event(EventRaw)
Event table (0x14) - event definitions
PropertyMap(PropertyMapRaw)
PropertyMap table (0x15) - maps types to their properties
PropertyPtr(PropertyPtrRaw)
PropertyPtr table (0x16) - property pointer table (rarely used)
Property(PropertyRaw)
Property table (0x17) - property definitions
MethodSemantics(MethodSemanticsRaw)
MethodSemantics table (0x18) - method semantic associations
MethodImpl(MethodImplRaw)
MethodImpl table (0x19) - method implementation information
ModuleRef(ModuleRefRaw)
ModuleRef table (0x1A) - module references
TypeSpec(TypeSpecRaw)
TypeSpec table (0x1B) - type specifications
ImplMap(ImplMapRaw)
ImplMap table (0x1C) - P/Invoke implementation mapping
FieldRVA(FieldRvaRaw)
FieldRVA table (0x1D) - field relative virtual addresses
Assembly(AssemblyRaw)
Assembly table (0x20) - assembly metadata
AssemblyProcessor(AssemblyProcessorRaw)
AssemblyProcessor table (0x21) - assembly processor information
AssemblyOS(AssemblyOsRaw)
AssemblyOS table (0x22) - assembly operating system information
AssemblyRef(AssemblyRefRaw)
AssemblyRef table (0x23) - assembly references
AssemblyRefProcessor(AssemblyRefProcessorRaw)
AssemblyRefProcessor table (0x24) - assembly reference processor info
AssemblyRefOS(AssemblyRefOsRaw)
AssemblyRefOS table (0x25) - assembly reference OS information
File(FileRaw)
File table (0x26) - file information in multi-file assemblies
ExportedType(ExportedTypeRaw)
ExportedType table (0x27) - exported type information
ManifestResource(ManifestResourceRaw)
ManifestResource table (0x28) - manifest resource information
NestedClass(NestedClassRaw)
NestedClass table (0x29) - nested class relationships
GenericParam(GenericParamRaw)
GenericParam table (0x2A) - generic parameter definitions
MethodSpec(MethodSpecRaw)
MethodSpec table (0x2B) - generic method instantiations
GenericParamConstraint(GenericParamConstraintRaw)
GenericParamConstraint table (0x2C) - generic parameter constraints
Implementations§
§impl TableDataOwned
impl TableDataOwned
pub fn calculate_row_size(&self, sizes: &TableInfoRef) -> u32
pub fn calculate_row_size(&self, sizes: &TableInfoRef) -> u32
Calculate the row size for this specific table row.
pub fn resolve_placeholders(&mut self, changes: &AssemblyChanges)
pub fn resolve_placeholders(&mut self, changes: &AssemblyChanges)
Resolves all placeholder values in this row’s heap reference fields.
This method dispatches to the appropriate ResolvePlaceholders implementation
for the contained row type. It should be called after heaps have been written
and ChangeRefs resolved, but before the row is serialized via row_write().
§Arguments
changes- AssemblyChanges containing resolvedChangeRefRcentries
Trait Implementations§
§impl Clone for TableDataOwned
impl Clone for TableDataOwned
§fn clone(&self) -> TableDataOwned
fn clone(&self) -> TableDataOwned
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more§impl Debug for TableDataOwned
impl Debug for TableDataOwned
§impl RowWritable for TableDataOwned
impl RowWritable for TableDataOwned
§impl TableRow for TableDataOwned
impl TableRow for TableDataOwned
§fn row_size(_sizes: &TableInfoRef) -> u32
fn row_size(_sizes: &TableInfoRef) -> u32
Auto Trait Implementations§
impl Freeze for TableDataOwned
impl RefUnwindSafe for TableDataOwned
impl Send for TableDataOwned
impl Sync for TableDataOwned
impl Unpin for TableDataOwned
impl UnsafeUnpin for TableDataOwned
impl UnwindSafe for TableDataOwned
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,
Source§impl<T> Downcast for T
impl<T> Downcast for T
impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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 moreSource§impl<F, T> IntoSample<T> for Fwhere
T: FromSample<F>,
impl<F, T> IntoSample<T> for Fwhere
T: FromSample<F>,
fn into_sample(self) -> T
Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.