#![cfg_attr(feature = "try_trait", feature(try_trait_v2))]
#![warn(missing_docs)]
#![warn(missing_debug_implementations)]
pub mod context;
pub mod effect;
pub mod either;
pub mod io;
pub mod monoid;
pub mod nonempty;
pub mod predicate;
pub mod refined;
pub mod retry;
pub mod semigroup;
pub mod testing;
pub mod traverse;
pub mod validation;
pub use effect::{BoxedEffect, Effect, EffectContext, EffectContextChain, EffectExt};
pub use effect::boxed::{BoxFuture, BoxedLocalEffect};
pub use effect::constructors::{
ask, asks, fail, from_async, from_fn, from_option, from_result, from_validation, local, pure,
zip3, zip4, zip5, zip6, zip7, zip8,
};
pub use effect::parallel::{par2, par3, par4, par_all, par_all_limit, par_try_all, race};
pub use effect::combinators::{
AndThen, AndThenAuto, AndThenRef, Check, Fail, FromAsync, FromFn, FromResult, Map, MapErr,
OrElse, Pure, Tap, With, Zip, Zip3, Zip4, Zip5, Zip6, Zip7, Zip8, ZipWith,
};
pub use effect::reader::{Ask, Asks, Local};
#[allow(deprecated)]
pub use effect::bracket::bracket_simple;
pub use effect::bracket::{
acquiring, bracket, bracket2, bracket3, bracket_full, bracket_sync, Acquiring, Bracket,
Bracket2, Bracket3, BracketError, BracketFull, BracketSync, Resource, ResourceWith,
};
#[allow(deprecated)]
pub use effect::compat::{LegacyConstructors, LegacyEffect, RunStandalone};
#[cfg(feature = "tracing")]
pub use effect::tracing::{EffectTracingExt, Instrument};
pub use context::ContextError;
pub use io::IO;
pub use monoid::Monoid;
pub use nonempty::NonEmptyVec;
pub use retry::{
JitterStrategy, RetryEvent, RetryExhausted, RetryPolicy, RetryStrategy, TimeoutError,
};
pub use semigroup::{First, Intersection, Last, Semigroup};
pub use validation::Validation;
pub use either::Either;
pub mod prelude {
pub use crate::effect::prelude::*;
pub use crate::context::ContextError;
pub use crate::either::Either;
pub use crate::io::IO;
pub use crate::monoid::Monoid;
pub use crate::nonempty::NonEmptyVec;
pub use crate::retry::{RetryEvent, RetryExhausted, RetryPolicy, TimeoutError};
pub use crate::semigroup::{First, Intersection, Last, Semigroup};
pub use crate::testing::{MockEnv, TestEffect};
pub use crate::traverse::{sequence, sequence_effect, traverse, traverse_effect};
pub use crate::validation::Validation;
pub use crate::{assert_failure, assert_success, assert_validation_errors};
}