daemonic_error 0.2.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::{
		frame::{Frame, FrameType, ReferenceFrame},
		glass::{Glass, Observation},
		Anchor,
		AnchorDomainSet,
		SymbolicAnchor,
		TopologySegment
	},
	DaemonicError,
	SemanticAnchor,
};
pub use daemonic::*;
pub use generic::*;
use crate::compiler::DaemonicC;

pub mod compiler;
impl Frame for Error {
	fn frame_type(&self) -> FrameType {
		todo!()
	}
}
impl Anchor for Error {
	fn anchor_domains(&self) -> AnchorDomainSet {
		todo!()
	}
}
impl ReferenceFrame for Error {
	fn origin(&self) -> &TopologySegment {
		todo!()
	}
	
	fn transform_to<GLASS>(&self, observation: &impl Glass<GLASS>, target_frame: &dyn ReferenceFrame) -> Option<Observation<GLASS>>
		where
			GLASS: Clone,
			Self: Sized,
	{
		todo!()
	}
}
pub enum Error {
	/// Use generic variant for simple or quick errors
	Generic(GenericError),
	/// Use this variant for LIBC compatible errors with ERRNO table and conversion methods
	OS(os::OsError),
	/// Daemonic Error variants with richer context than Generic or OS level returns
	/// Shade, Entity, and Symbolic errors are here.
	Daemonic(DaemonicVariants),
	Compiler(DaemonicC),
}
static ERROR_SEGMENT: TopologySegment = TopologySegment::new("Daemonic::Glass::Error");
impl<'error> DaemonicError<'error> for Error {
	fn position(&self) -> &TopologySegment {
		&ERROR_SEGMENT
	}
	
	fn emit(&self) -> Error {
		todo!("needs shit")
	}
}
pub mod os;
pub mod daemonic;
pub mod generic;
pub mod physics_violation;