crate::endpoints! {
snapshot: Query<SnapshotRequest, Snapshot>;
follow: Stream<Follow, Out>;
}
use crate::runtime::api::logs::{Level, LogValue, Timestamp};
use crate::runtime::api::telemetry::Cursor;
#[derive(
phoxal_macros::DescribeWire, Clone, Debug, PartialEq, serde::Serialize, serde::Deserialize,
)]
pub struct SnapshotRequest {
pub participant_id: Option<String>,
pub limit: u32,
pub before_sequence: Option<u64>,
}
#[derive(
phoxal_macros::DescribeWire, Clone, Debug, PartialEq, serde::Serialize, serde::Deserialize,
)]
pub struct Record {
pub sequence: u64,
pub participant_id: String,
pub source_sequence: u64,
pub time: Timestamp,
pub level: Level,
pub target: String,
pub message: String,
pub fields: ::std::collections::BTreeMap<String, LogValue>,
pub dropped: u32,
pub truncated: u32,
}
#[derive(
phoxal_macros::DescribeWire, Clone, Debug, PartialEq, serde::Serialize, serde::Deserialize,
)]
pub struct Snapshot {
pub cursor: Cursor,
pub ingest_dropped: u64,
pub records: Vec<Record>,
pub next_before_sequence: Option<u64>,
}
#[derive(
phoxal_macros::DescribeWire, Clone, Debug, PartialEq, serde::Serialize, serde::Deserialize,
)]
pub struct Follow {
pub cursor: Cursor,
pub ingest_dropped: u64,
pub record: Record,
}