use crate::{Annotation, Observation, ObservationTier, Severity, Temporal, TopologySegment};
use crate::daemonic::observation::Stable;
use super::Glass;
pub trait GlassStable<GLASS>: Glass<GLASS>
where
Self: Sized,
{
fn value(&self) -> Stable<&GLASS>;
fn into_value(self) -> Stable<GLASS>
where
Self: Sized;
}
pub trait StableAnnotation<GLASS>: GlassStable<GLASS>
where
Self: Sized,
GLASS: for<'str> Glass<&'str str>,
{
fn annotation(&self) -> &GLASS;
fn alternative(&self) -> Option<&GLASS> { None }
}