daemonic_error 0.1.0

Errors that compose, predict, and leave receipts - Compose: algebraic combination (in active development) - Predict: Glass/Severity - Receipts: audit trail, position, checksum - Reflection: Runtime Reflection through TopologySegment (in active development)
use crate::daemonic::glass::Glass;
use crate::DaemonicError;

/// Unassessed observation. Fidelity genuinely unknown.
/// Payload may or may not exist.
/// Not an error — just hasn't been evaluated yet.
/// Resolution: re-observe with more context.
pub trait GlassUnknown<GLASS>: Glass<GLASS> + for<'error> DaemonicError <'error> {
	/// What DO we know? (might be nothing)
	fn known_properties(&self) -> Option<&GLASS> {
		self.payload()
	}

	/// What would help resolve this?
	fn resolution_hint(&self) -> Option<&str> {
		None
	}
}
/// Annotation on an Unknown observation.
/// "We don't know what this is yet, but here's what we've tried."
pub trait UnknownAnnotation<GLASS>: GlassUnknown<GLASS> {
	fn annotation(&self) -> &str;

	/// What assessment methods were attempted?
	fn attempted_assessments(&self) -> &[&str] { &[] }
}