tiny.machine.fabric
Defined in tiny.machine.
API (42)
Actions
Public operations.
Types and contracts
Public types and contracts.
AdmissionEffectAdmissionEntryAdmissionFaultAdmittedCapacityFaultCapacityResourceCutDialectEntryEntryValueErrorFabricFaultAlternativesFaultEffectFaultEntryFaultInputFaultedInputMachineBoundaryMachineBoundaryKindNodeNodeBoundaryNodeIdPacketPacketDelayPacketInputPacketReorderPartitionProcessCrashRootServiceResultSettledSettlementEntryTransition
Namespaces
Public namespaces.
Values and defaults
Public values and defaults.
admission_limitdeterminism_sourcesnode_limitpacket_bytes_max: The largest effect-result payload the machine ABI allows, in bytes.packet_limit
Source
Source: lib/machine/src/fabric/types.zig:158
pub const AdmissionEffect = union(enum) { direct, packet_send: Packet, packet_delivery: u64,};Source: lib/machine/src/fabric/types.zig:164
pub const AdmissionEntry = struct { node: NodeId, admission: admission.Admission, effect: AdmissionEffect, fault: ?AdmissionFault,};Source: lib/machine/src/fabric/types.zig:132
pub const AdmissionFault = struct { effect: FaultEffect, decision: fault.Decision,};Source: lib/machine/src/fabric/types.zig:193
Source: lib/machine/src/fabric/types.zig:108
pub const CapacityFault = struct { resource: CapacityResource, active: bool,};Source: lib/machine/src/fabric/types.zig:76
pub const CapacityResource = enum(u8) { admission = 1, packet = 2,};Source: lib/machine/src/fabric/types.zig:58
pub const Cut = struct { root: Root, node_count: u8, nodes: [node_limit]NodeBoundary,};Source: lib/machine/src/fabric/types.zig:13
pub const Dialect = enum(u16) { ordered_effect_fabric_v3 = 3,};Source: lib/machine/src/fabric/types.zig:182
pub const Entry = struct { sequence: u64, previous: Root, value: EntryValue,};Source: lib/machine/src/fabric/types.zig:176
pub const EntryValue = union(enum) { admission: AdmissionEntry, settlement: SettlementEntry, fault: FaultEntry,};Source: lib/machine/src/fabric/types.zig:81
pub const FaultAlternatives = struct { node: NodeId, bypass: os.abi.Digest, inject: os.abi.Digest,};Source: lib/machine/src/fabric/types.zig:113
pub const FaultEffect = union(fault.Kind) { machine_crash: NodeId, process_crash: ProcessCrash, io_error: FaultAlternatives, packet_loss: u64, packet_delay: PacketDelay, packet_reorder: PacketReorder, partition: Partition, clock_jump: u64, entropy_choice: FaultAlternatives, capacity_exhaustion: CapacityFault, host_service_failure: FaultAlternatives,};Source: lib/machine/src/fabric/types.zig:137
pub const FaultEntry = struct { effect: FaultEffect, decision: fault.Decision,};Source: lib/machine/src/fabric/types.zig:127
pub const FaultInput = struct { effect: FaultEffect, choice: fault.Choice,};Source: lib/machine/src/fabric/types.zig:204
Source: lib/machine/src/fabric/types.zig:26
pub const Input = struct { profile: profile.Profile, world: [16]u8, virtual_time_tick: u64, nodes: []const Node,};Source: lib/machine/src/fabric/types.zig:47
pub const MachineBoundary = struct { kind: MachineBoundaryKind, digest: os.abi.Digest,};Source: lib/machine/src/fabric/types.zig:42
pub const MachineBoundaryKind = enum(u8) { basis = 1, semantic = 2,};Source: lib/machine/src/fabric/types.zig:21
Source: lib/machine/src/fabric/types.zig:52
pub const NodeBoundary = struct { id: NodeId, available: bool, machine: MachineBoundary,};Source: lib/machine/src/fabric/types.zig:17
pub const NodeId = struct { bytes: [16]u8,};Source: lib/machine/src/fabric/types.zig:142
pub const Packet = struct { id: u64, source: NodeId, destination: NodeId, channel: u16, request: admission.EffectRequest, length: u16, storage: [packet_bytes_max]u8, digest: os.abi.Digest, pub fn bytes(self: *const Packet) []const u8 { std.debug.assert(self.length <= self.storage.len); return self.storage[0..self.length]; }};Source: lib/machine/src/fabric/types.zig:92
pub const PacketDelay = struct { packet: u64, until_tick: u64,};Source: lib/machine/src/fabric/types.zig:64
pub const PacketInput = struct { destination: NodeId, channel: u16, bytes: []const u8,};Source: lib/machine/src/fabric/types.zig:97
pub const PacketReorder = struct { first: u64, second: u64,};Source: lib/machine/src/fabric/types.zig:102
Source: lib/machine/src/fabric/types.zig:87
pub const ProcessCrash = struct { node: NodeId, process: u64,};Source: lib/machine/src/fabric/types.zig:70
pub const ServiceResult = struct { status: os.abi.EffectStatus, output_root: os.abi.Digest, bytes: []const u8,};Source: lib/machine/src/fabric/types.zig:199
Source: lib/machine/src/fabric/types.zig:171
pub const SettlementEntry = struct { node: NodeId, receipt: instance.SemanticReceipt,};Source: lib/machine/src/fabric/types.zig:188
Source: lib/machine/src/fabric/owner.zig:41
pub const Error = canon.Error || profile.Error || instance.BasisError || FabricError;Source: lib/machine/src/fabric/types.zig:11
pub const admission_limit: u32 = 4096;Source: lib/machine/src/fabric/types.zig:8
pub const node_limit: usize = 4;Source: lib/machine/src/fabric/root.zig
const owner = @import("owner.zig");const profile = @import("../profile/root.zig");const types = @import("types.zig");pub const snapshot = @import("snapshot/root.zig");pub const transition = @import("transition/root.zig");pub const Admitted = types.Admitted;pub const AdmissionEffect = types.AdmissionEffect;pub const AdmissionEntry = types.AdmissionEntry;pub const AdmissionFault = types.AdmissionFault;pub const CapacityFault = types.CapacityFault;pub const CapacityResource = types.CapacityResource;pub const Cut = types.Cut;pub const Dialect = types.Dialect;pub const Entry = types.Entry;pub const EntryValue = types.EntryValue;pub const Error = owner.Error;pub const Fabric = owner.Fabric;pub const FaultAlternatives = types.FaultAlternatives;pub const FaultEffect = types.FaultEffect;pub const FaultEntry = types.FaultEntry;pub const FaultInput = types.FaultInput;pub const Faulted = types.Faulted;pub const Input = types.Input;pub const MachineBoundary = types.MachineBoundary;pub const MachineBoundaryKind = types.MachineBoundaryKind;pub const Node = types.Node;pub const NodeBoundary = types.NodeBoundary;pub const NodeId = types.NodeId;pub const Packet = types.Packet;pub const PacketDelay = types.PacketDelay;pub const PacketInput = types.PacketInput;pub const PacketReorder = types.PacketReorder;pub const Partition = types.Partition;pub const ProcessCrash = types.ProcessCrash;pub const Root = types.Root;pub const ServiceResult = types.ServiceResult;pub const Settled = types.Settled;pub const SettlementEntry = types.SettlementEntry;pub const Transition = types.Transition;pub const admission_limit = types.admission_limit;pub const node_limit = types.node_limit;pub const packet_bytes_max = types.packet_bytes_max;pub const packet_limit = types.packet_limit;pub const determinism_sources = [_]profile.DeterminismSource{ .terminal_input, .virtual_time, .entropy_input, .packet_payload, .packet_delivery, .packet_fault, .host_service_result, .effect_result, .fault_choice, .capacity_fault, .machine_crash, .process_crash,};Source: lib/machine/src/root.zig:68
pub const fabric = @import("fabric/root.zig");Source: lib/machine/src/fabric/types.zig:9
pub const packet_limit: usize = os.abi.ring.capacity;Audit
| Definitions | 38 |
|---|---|
| Public names | 39 |
| Members | 90 |
| Version | 26.7.0 |
| Revision | daab053ee433 |