[package]
build = "build.rs"
description = "The harness-agnostic shepherd engine: domain types, configuration schema, and run state. Knows nothing about any CLI, harness, or process."
name = "shepherd-core"
authors.workspace = true
categories.workspace = true
edition.workspace = true
homepage.workspace = true
keywords.workspace = true
license.workspace = true
readme = "README.md"
repository.workspace = true
rust-version.workspace = true
version.workspace = true
[lib]
bench = false
crate-type = ["rlib"]
[[test]]
name = "default"
required-features = []
[[test]]
name = "guard"
required-features = ["std", "parse", "json"]
[[test]]
name = "dispatch"
required-features = ["std", "json"]
[[test]]
name = "portable_dispatch"
required-features = ["std", "json"]
[[test]]
name = "run_state"
required-features = ["std", "json"]
[package.metadata.docs.rs]
all-features = false
features = ["full"]
rustc-args = ["--cfg", "docsrs"]
version = "v{{version}}"
[package.metadata.release]
no-dev-version = true
tag-name = "v{{version}}"
[dependencies]
thiserror = { workspace = true }
strum = { workspace = true }
nom = { optional = true, workspace = true }
toml = { optional = true, workspace = true }
schemars = { optional = true, workspace = true }
serde = { optional = true, workspace = true }
serde_json = { optional = true, workspace = true }
chrono = { optional = true, workspace = true }
uuid = { optional = true, workspace = true }
tracing = { optional = true, workspace = true }
[features]
default = [
"std",
]
full = [
"default",
"chrono",
"config",
"json",
"parse",
"schema",
"tracing",
"uuid",
]
config = [
"dep:toml",
"json",
"std",
]
json = [
"alloc",
"serde",
"serde_json",
]
parse = [
"alloc",
"dep:nom",
"dep:toml",
]
schema = [
"alloc",
"dep:schemars",
"serde",
]
native = ["full"]
nightly = []
wasi = [
"config",
"json",
"parse",
"schema",
"std",
]
wasm = [
"config",
"json",
"parse",
"schema",
"std",
]
alloc = [
"chrono?/alloc",
"nom?/alloc",
"serde?/alloc",
"serde_json?/alloc",
"uuid?/std",
]
std = [
"alloc",
"chrono?/std",
"nom?/std",
"schemars?/std",
"serde?/std",
"serde_json?/std",
"strum/std",
"thiserror/std",
"toml?/std",
"tracing?/std",
]
chrono = [
"alloc",
"dep:chrono",
]
serde = [
"alloc",
"dep:serde",
"chrono?/serde",
"uuid?/serde",
]
serde_json = [
"alloc",
"dep:serde_json",
]
tracing = [
"alloc",
"dep:tracing",
]
uuid = [
"alloc",
"dep:uuid",
]
[lints]
workspace = true