64 lines
1.7 KiB
Rust
64 lines
1.7 KiB
Rust
#![doc = include_str!("../README.md")]
|
|
#![feature(min_specialization)]
|
|
|
|
#[doc(inline)]
|
|
pub use preserves::value;
|
|
|
|
#[doc(inline)]
|
|
pub use preserves;
|
|
|
|
#[doc(inline)]
|
|
pub use preserves_schema;
|
|
|
|
pub mod actor;
|
|
pub mod bag;
|
|
pub mod dataflow;
|
|
pub mod dataspace;
|
|
pub mod during;
|
|
pub mod error;
|
|
#[doc(hidden)]
|
|
pub mod pattern;
|
|
pub mod relay;
|
|
pub mod rewrite;
|
|
pub mod supervise;
|
|
|
|
pub mod schemas {
|
|
//! Auto-generated codecs for [Syndicate protocol
|
|
//! schemas](https://git.syndicate-lang.org/syndicate-lang/syndicate-protocols/src/branch/main/schemas).
|
|
include!(concat!(env!("OUT_DIR"), "/src/schemas/mod.rs"));
|
|
}
|
|
|
|
pub mod skeleton;
|
|
pub mod sturdy;
|
|
pub mod trace;
|
|
|
|
#[doc(inline)]
|
|
pub use during::entity;
|
|
|
|
/// Sets up [`tracing`] logging in a reasonable way.
|
|
///
|
|
/// Useful at the top of `main` functions.
|
|
pub fn convenient_logging() -> Result<(), Box<dyn std::error::Error>> {
|
|
let filter = match std::env::var(tracing_subscriber::filter::EnvFilter::DEFAULT_ENV) {
|
|
Err(std::env::VarError::NotPresent) =>
|
|
tracing_subscriber::filter::EnvFilter::default()
|
|
.add_directive(tracing_subscriber::filter::LevelFilter::INFO.into()),
|
|
_ =>
|
|
tracing_subscriber::filter::EnvFilter::try_from_default_env()?,
|
|
};
|
|
let subscriber = tracing_subscriber::fmt()
|
|
.with_ansi(true)
|
|
.with_thread_ids(true)
|
|
.with_max_level(tracing::Level::TRACE)
|
|
.with_env_filter(filter)
|
|
.with_writer(std::io::stderr)
|
|
.finish();
|
|
tracing::subscriber::set_global_default(subscriber)
|
|
.expect("Could not set tracing global subscriber");
|
|
Ok(())
|
|
}
|
|
|
|
preserves_schema::define_language!(language(): Language<actor::AnyValue> {
|
|
syndicate: schemas::Language,
|
|
});
|