Skip to main content

deep_causality_core/
lib.rs

1/*
2 * SPDX-License-Identifier: MIT
3 * Copyright (c) 2023 - 2026. The DeepCausality Authors and Contributors. All Rights Reserved.
4 */
5
6#![cfg_attr(not(feature = "std"), no_std)]
7#[cfg(feature = "alloc")]
8extern crate alloc;
9extern crate core;
10
11mod alias;
12mod errors;
13mod traits;
14mod types;
15
16// Re-export alias types
17pub use crate::alias::*;
18
19// Re-export error types
20pub use crate::errors::causality_error::{CausalityError, CausalityErrorEnum};
21
22// Re-export traits
23pub use crate::traits::alternatable::Alternatable;
24pub use crate::traits::alternatable_context::AlternatableContext;
25pub use crate::traits::alternatable_state::AlternatableState;
26pub use crate::traits::alternatable_value::AlternatableValue;
27pub use crate::traits::causal_monad::CausalMonad;
28
29// Re-export types
30pub use crate::types::causal_arrow::{
31    CausalArrow, CausalArrowBuilder, CausalFlowOut, CausalLift, KleisliCompose, causal_arrow,
32};
33pub use crate::types::causal_command::{CausalCommand, CausalCommandWitness};
34pub use crate::types::causal_effect::CausalEffect;
35pub use crate::types::causal_effect_propagation_process::CausalEffectPropagationProcess;
36pub use crate::types::causal_effect_propagation_process::hkt::CausalEffectPropagationProcessWitness;
37pub use crate::types::causal_flow::CausalFlow;
38pub use crate::types::effect_log::log_effect::EffectLog;
39// IO file actions (std-only): concrete `IoAction`s reading/writing files, fixing
40// `Error = CausalityError`. The `IoAction` trait itself lives in `deep_causality_haft`.
41#[cfg(feature = "std")]
42pub use crate::types::io::{
43    ReadCsv, ReadText, WriteCsv, WriteText, read_csv, read_text, write_csv, write_text,
44};
45pub use crate::types::propagating_effect::PropagatingEffect;
46pub use crate::types::propagating_effect::hkt::PropagatingEffectWitness;
47pub use crate::types::propagating_process::PropagatingProcess;
48pub use crate::types::propagating_process::hkt::PropagatingProcessWitness;
49pub use deep_causality_haft::Either;