use trellis_core::{HostResourceStatus, ResourceKey, Revision, ScopeId, TransactionId};
pub use trellis_core::HostStatusClass;
pub type HostStatusEvent = HostResourceStatus;
#[derive(Clone, Debug, Eq, PartialEq)]
pub struct HostStatusRecord {
pub status: HostStatusEvent,
pub class: HostStatusClass,
pub last_transaction_id: Option<TransactionId>,
pub last_command_revision: Option<Revision>,
}
#[derive(Clone, Debug, Eq, PartialEq, Ord, PartialOrd)]
pub(crate) struct HostStatusIdentity {
resource_key: ResourceKey,
scope: ScopeId,
command_revision: Revision,
status_revision: Revision,
}
impl From<&HostStatusEvent> for HostStatusIdentity {
fn from(status: &HostStatusEvent) -> Self {
Self {
resource_key: status.resource_key.clone(),
scope: status.scope,
command_revision: status.command_revision,
status_revision: status.status_revision,
}
}
}