pub struct DaemonResponseFrame {
pub ok: bool,
pub result: Option<String>,
pub error: Option<String>,
pub namespace_mismatch: bool,
pub config_mismatch: bool,
pub served_config_id: Option<String>,
pub version_mismatch: bool,
pub daemon_protocol_version: u32,
pub metrics: Option<MetricsSnapshot>,
pub request_id: Option<u64>,
}Expand description
Response frame sent from the daemon back to a client.
Fields§
§ok: bool§result: Option<String>§error: Option<String>§namespace_mismatch: bool§config_mismatch: boolSet when the request’s config_id does not match the daemon’s. Like
namespace_mismatch, this signals the client to fall back to local
dispatch rather than execute under a different runtime/config.
served_config_id: Option<String>The config_id the daemon dispatched under, echoed back so the client
can positively confirm the result came from a matching runtime. A
pre-config_id daemon omits this field (deserializes to None), which
the client treats as a mismatch and falls back to local dispatch — this
closes the upgrade window where a new restricted client could otherwise
trust a still-warm legacy daemon’s broader registry.
version_mismatch: boolSet when the client’s protocol_version does not match the daemon’s
PROTOCOL_VERSION. The client must treat this as a hard error and
surface the human-readable error field rather than falling back to
local dispatch (which would hide the version skew).
daemon_protocol_version: u32The daemon’s PROTOCOL_VERSION, echoed in error responses so the
client can include both sides in the diagnostic message. Pre-versioning
daemons omit this field (deserializes to 0).
metrics: Option<MetricsSnapshot>Populated when the request set metrics_only: true: a point-in-time
snapshot of the daemon’s server-side gauges. None on every other
response, and on any response from a daemon that predates this field
(client-side back-compat via #[serde(default)], matching
served_config_id’s upgrade-window handling above).
request_id: Option<u64>Echo of the request’s request_id (khive#948), present whenever the
frame that produced this response carried one — including on every
error/denied arm, not only success, so a client can join a failure
the same way it joins a success. #[serde(default)] so an older
daemon’s response (predating this field) deserializes to None
rather than a parse error.
Trait Implementations§
Source§impl Debug for DaemonResponseFrame
impl Debug for DaemonResponseFrame
Source§impl<'de> Deserialize<'de> for DaemonResponseFrame
impl<'de> Deserialize<'de> for DaemonResponseFrame
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 DaemonResponseFrame
impl RefUnwindSafe for DaemonResponseFrame
impl Send for DaemonResponseFrame
impl Sync for DaemonResponseFrame
impl Unpin for DaemonResponseFrame
impl UnsafeUnpin for DaemonResponseFrame
impl UnwindSafe for DaemonResponseFrame
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<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> 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