pub struct LinkedProgram {Show 19 fields
pub entry: FunctionHash,
pub instructions: Vec<Instruction>,
pub constants: Vec<Constant>,
pub strings: Vec<String>,
pub functions: Vec<LinkedFunction>,
pub hash_to_id: HashMap<FunctionHash, usize>,
pub debug_info: DebugInfo,
pub data_schema: Option<DataFrameSchema>,
pub module_binding_names: Vec<String>,
pub top_level_locals_count: u16,
pub top_level_local_storage_hints: Vec<StorageHint>,
pub type_schema_registry: TypeSchemaRegistry,
pub module_binding_storage_hints: Vec<StorageHint>,
pub function_local_storage_hints: Vec<Vec<StorageHint>>,
pub top_level_frame: Option<FrameDescriptor>,
pub trait_method_symbols: HashMap<String, String>,
pub foreign_functions: Vec<ForeignFunctionEntry>,
pub native_struct_layouts: Vec<NativeStructLayoutEntry>,
pub total_required_permissions: PermissionSet,
}Expand description
A linked, execution-ready program with flat instruction/constant/string arrays.
This mirrors today’s BytecodeProgram layout so the executor can run it
with minimal changes. Produced by the linker from a Program.
Fields§
§entry: FunctionHashHash of the entry-point function for execution.
instructions: Vec<Instruction>Flat instruction array (all functions concatenated).
constants: Vec<Constant>Merged constant pool.
strings: Vec<String>Merged string pool.
functions: Vec<LinkedFunction>Linked function table (replaces Vec<Function>).
hash_to_id: HashMap<FunctionHash, usize>Reverse lookup: content hash -> function index in functions.
debug_info: DebugInfoDebug information.
data_schema: Option<DataFrameSchema>DataFrame schema for column name resolution.
module_binding_names: Vec<String>Module-binding variable names.
top_level_locals_count: u16Number of locals used by top-level code.
top_level_local_storage_hints: Vec<StorageHint>Storage hints for top-level locals.
type_schema_registry: TypeSchemaRegistryType schema registry for TypedObject field resolution.
module_binding_storage_hints: Vec<StorageHint>Storage hints for module bindings.
function_local_storage_hints: Vec<Vec<StorageHint>>Per-function local storage hints.
top_level_frame: Option<FrameDescriptor>Typed frame layout for top-level locals.
trait_method_symbols: HashMap<String, String>Trait method dispatch registry.
foreign_functions: Vec<ForeignFunctionEntry>Foreign function metadata table.
native_struct_layouts: Vec<NativeStructLayoutEntry>Native type C layout metadata table.
total_required_permissions: PermissionSetTransitive union of all required permissions across all blobs.
Computed by the linker during link().
Trait Implementations§
Source§impl Clone for LinkedProgram
impl Clone for LinkedProgram
Source§fn clone(&self) -> LinkedProgram
fn clone(&self) -> LinkedProgram
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for LinkedProgram
impl Debug for LinkedProgram
Source§impl Default for LinkedProgram
impl Default for LinkedProgram
Source§fn default() -> LinkedProgram
fn default() -> LinkedProgram
Source§impl<'de> Deserialize<'de> for LinkedProgram
impl<'de> Deserialize<'de> for LinkedProgram
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>,
Auto Trait Implementations§
impl Freeze for LinkedProgram
impl RefUnwindSafe for LinkedProgram
impl Send for LinkedProgram
impl Sync for LinkedProgram
impl Unpin for LinkedProgram
impl UnsafeUnpin for LinkedProgram
impl UnwindSafe for LinkedProgram
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,
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 more