//! Tipos núcleo de hammer, compartidos por el lab, la CLI y el daemon. //! //! Ver `docs/01-architecture.md` y siguientes. Esto es el esqueleto de Fase 0: los tipos y //! contratos están definidos; la lógica pesada (sandbox, fanotify, bus) vive en los otros //! crates y se irá rellenando por fase. pub mod apply; pub mod hash; pub mod proto; pub mod query; pub mod recipe; pub mod sign; pub mod store; pub mod swm; pub use hash::ArtifactHash; pub use recipe::{Compiler, LinkMode, Phases, Recipe, Source, SourceKind}; pub use sign::{KeyPair, SigStatus, TrustStore}; pub use store::Store; pub use swm::{Base, BaseCompat, BaseRef, Mutation, PinDiff, Signature, Swm, SwmBuild}; /// Error común del ecosistema hammer. #[derive(Debug, thiserror::Error)] pub enum Error { #[error("io: {0}")] Io(#[from] std::io::Error), #[error("serialización: {0}")] Serde(String), #[error("receta inválida: {0}")] Recipe(String), #[error("store: {0}")] Store(String), #[error(transparent)] Other(#[from] anyhow::Error), } pub type Result = std::result::Result;