1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
//! `cargo-athena` — compile regular Rust into Argo Workflow YAML.
//!
//! This facade is the only crate users depend on. It re-exports the
//! runtime ([`cargo_athena_core`]) and the proc macros
//! ([`cargo_athena_macros`]) behind one stable `::cargo_athena` path, which is
//! also the path the generated code targets.
//!
//! ```ignore
//! use cargo_athena::{workflow, container}; // `host!` is used path-qualified
//!
//! #[workflow]
//! fn run_foo() {
//! let a = some_other_workflow("asdf".to_string());
//! run_a_container(a);
//! }
//!
//! #[container(image = "ghcr.io/acme/app:latest")]
//! fn run_a_container(a: String) {
//! let cfg = cargo_athena::host!("/etc/myapp"); // -> hostPath volume; compile error outside #[container]/#[fragment]
//! println!("{cfg} {a}");
//! }
//!
//! // entrypoint is a *type*; referencing it force-links the closure.
//! fn main() { cargo_athena::entrypoint::<run_foo>(); }
//! ```
// Runtime: modes, registration, BuildCtx, YAML emit, `host!`, re-exported
// `api` / `inventory` / `serde_json` / `serde_norway`.
pub use *;
// `#[macro_export]` macros live at the dependency's crate root; re-export
// explicitly so `cargo_athena::host!` resolves for users. `__cargo_athena_host`
// is the private real macro the attribute macros rewrite visible `host!`s
// into — it must be reachable at `::cargo_athena::__cargo_athena_host`.
pub use ;
pub use ;
// Attribute macros.
pub use ;