pub struct LogEntry {Show 14 fields
pub message_id: String,
pub received_at_ms: i64,
pub sender: String,
pub message_type: String,
pub raw_payload: Vec<u8>,
pub entry_kind: EntryKind,
pub session_id: String,
pub mode: String,
pub macp_version: String,
pub timestamp_unix_ms: i64,
pub bound_mode_version: Option<String>,
pub semantics_rev: u32,
pub bound_max_suspend_ms: Option<i64>,
pub compacted_incoming_ordinals: u64,
}Fields§
§message_id: String§received_at_ms: i64§sender: String§message_type: String§raw_payload: Vec<u8>§entry_kind: EntryKind§session_id: String§mode: String§macp_version: String§timestamp_unix_ms: i64Original envelope timestamp for replay determinism.
bound_mode_version: Option<String>Mode version bound at SessionStart acceptance when the payload’s own
mode_version was empty (non-strict extension modes take the registered
descriptor’s version). Replay uses this recorded binding and never
re-derives it from the live registry. None on legacy entries and on
entries whose payload carried the version explicitly — legacy histories
keep their original (empty-version) binding semantics.
semantics_rev: u32Session-semantics revision recorded on the SessionStart entry (see
macp_core::session::CURRENT_SEMANTICS_REV). Legacy entries
deserialize as 0; replay applies the recorded revision so old
histories keep the acceptance-time behavior they were written under.
bound_max_suspend_ms: Option<i64>Suspension cap resolved and bound at SessionStart acceptance
(payload value, or the runtime default when the payload carried 0).
Replay uses this recorded value, never live configuration
(RFC-MACP-0003 §2). None on legacy entries — those sessions keep
default-cap semantics.
compacted_incoming_ordinals: u64On Checkpoint entries produced by log compaction: how many accepted
(Incoming) envelope ordinals the compaction discarded. Ordinals of
entries after the checkpoint continue from this base, keeping the
passive-subscribe sequence stable across compaction and restart.
0 on all other entries and on legacy checkpoints.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for LogEntry
impl<'de> Deserialize<'de> for LogEntry
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<LogEntry, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<LogEntry, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl Serialize for LogEntry
impl Serialize for LogEntry
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Auto Trait Implementations§
impl Freeze for LogEntry
impl RefUnwindSafe for LogEntry
impl Send for LogEntry
impl Sync for LogEntry
impl Unpin for LogEntry
impl UnsafeUnpin for LogEntry
impl UnwindSafe for LogEntry
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> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request