haz-domain 0.2.0

Shared domain types for the haz task runner (identifiers, paths, errors).
Documentation
//! Domain primitives for `haz`: workspaces, projects, tasks, references, paths.
//!
//! Every public item in this crate represents a value object: a
//! validated, immutable, infrastructure-free piece of the domain
//! model. The crate has no I/O, no async, and no dependency on
//! any other workspace crate.
//!
//! # Module map
//!
//! - [`name`]: validated identifier newtypes
//!   ([`name::ProjectName`], [`name::TagName`], [`name::TaskName`],
//!   [`name::MutexName`], [`name::OverlayName`]).
//! - [`path`]: path and pattern primitives ([`path::HazPath`],
//!   [`path::PathSegment`], [`path::CanonicalPath`],
//!   [`path::WorkspaceRootPath`], [`path::PathPattern`],
//!   [`path::InputSpec`], [`path::OutputSpec`]).
//! - [`task_ref`]: textual task references ([`task_ref::TaskRef`]).
//! - [`task_id`]: resolved task identity ([`task_id::TaskId`]).
//! - [`action`]: what a task does
//!   ([`action::TaskAction`], [`action::ShellType`],
//!   [`action::NonEmptyAsciiName`]).
//! - [`env`](mod@env): per-task environment-variable settings
//!   ([`env::EnvVarName`], [`env::EnvSettings`]).
//! - [`mutex`]: per-task mutex aggregate
//!   ([`mutex::Mutex`], [`mutex::MutexScope`], [`mutex::MutexMode`]).
//! - [`settings`]: workspace-wide settings ([`settings::WorkspaceSettings`]
//!   plus the sub-modules for cache, concurrency, output, and execution).
//! - [`task`]: the [`task::Task`] aggregate.
//! - [`project`]: the [`project::Project`] aggregate.
//! - [`overlay`]: the [`overlay::Overlay`] aggregate.
//! - [`workspace`]: the [`workspace::Workspace`] aggregate.
//! - [`resolution`]: pure-domain reference resolution
//!   ([`resolution::resolve_task_ref`], [`resolution::ResolutionError`]).
//! - [`scope`]: task-set scope selection ([`scope::Scope`]) shared by
//!   `haz run` target resolution and `haz check` validation counting.

#![deny(missing_docs)]

pub mod action;
pub mod env;
pub mod mutex;
pub mod name;
pub mod overlay;
pub mod path;
pub mod project;
pub mod resolution;
pub mod scope;
pub mod settings;
pub mod task;
pub mod task_id;
pub mod task_ref;
pub mod workspace;