daemonic_error 0.1.2

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 daemonic_core::DaemonicClock;
use daemonic_core::DaemonicCore;
use daemonic_contract::DaemonicContract;
use crate::daemonic::daemonic_contract::DaemonicBinary;
use crate::{DaemonicError};
/// Top level Daemonic trait, baseplate. All things Serve the Daemonic Trait.
/// This trait is mostly a marker point for ROOT, but can be implemented on things but
/// requires significant boilerplate.
pub(crate) trait Daemonic<GLASS: Glass<GLASS> + Iterator>: DaemonicCore<GLASS>
+ DaemonicContract<GLASS>
+ Glass<GLASS>
{
	/// Daemonic ID
	#[must_use]
	fn id(&self) -> DaemonicID<GLASS>;
	/// DaemonicPosition, all fields in all things that specialize on this trait must be positioned
	#[must_use]
	fn position(&self) -> TopologySegment;
}

pub mod observation;

use glass::*;
pub use anchor::*;

pub(crate) mod anchor;
pub(crate) mod identity;
pub mod glass;
pub(crate) mod mirror;
pub(crate) mod daemonic_core;
pub(crate) mod daemonic_contract;
pub mod daemonic_hasher;

pub(crate) struct DaemonicID<GLASS: Glass<GLASS>> {
	id: u32, //TODO: ID should be Typed at some point, but this is fine for now
	nickname: Option<GLASS>,
}