1#![doc = pretty_readme::docify!("README.md", "https://docs.rs/tyche/latest/tyche/", "./")]
2#![cfg_attr(not(any(doc, test)), no_std)]
3#![allow(clippy::tabs_in_doc_comments)]
4#![deny(macro_use_extern_crate, meta_variable_misuse, unit_bindings)]
5#![warn(
6 explicit_outlives_requirements,
7 missing_docs,
8 missing_debug_implementations,
9 unreachable_pub,
10 unused_crate_dependencies,
11 unused_qualifications,
12 clippy::pedantic,
13 clippy::absolute_paths,
14 clippy::arithmetic_side_effects,
15 clippy::clone_on_ref_ptr,
16 clippy::cognitive_complexity,
17 clippy::empty_enum_variants_with_brackets,
18 clippy::empty_structs_with_brackets,
19 clippy::exhaustive_enums,
20 clippy::exhaustive_structs,
21 clippy::expect_used,
22 clippy::filetype_is_file,
23 clippy::missing_const_for_fn,
24 clippy::fn_to_numeric_cast_any,
25 clippy::format_push_string,
26 clippy::get_unwrap,
27 clippy::if_then_some_else_none,
28 clippy::lossy_float_literal,
29 clippy::map_err_ignore,
30 clippy::missing_docs_in_private_items,
31 clippy::multiple_inherent_impl,
32 clippy::mutex_atomic,
33 clippy::panic_in_result_fn,
34 clippy::print_stderr,
35 clippy::print_stdout,
36 clippy::pub_without_shorthand,
37 clippy::rc_buffer,
38 clippy::rc_mutex,
39 clippy::redundant_type_annotations,
40 clippy::ref_patterns,
41 clippy::rest_pat_in_fully_bound_structs,
42 clippy::same_name_method,
43 clippy::self_named_module_files,
44 clippy::str_to_string,
45 clippy::string_to_string,
46 clippy::suspicious_xor_used_as_pow,
47 clippy::tests_outside_test_module,
48 clippy::try_err,
49 clippy::undocumented_unsafe_blocks,
50 clippy::unnecessary_safety_comment,
51 clippy::unnecessary_safety_doc,
52 clippy::unnecessary_self_imports,
53 clippy::unneeded_field_pattern,
54 clippy::unwrap_in_result,
55 clippy::unwrap_used,
56 clippy::verbose_file_reads
57)]
58
59extern crate alloc;
60extern crate core;
61
62pub mod dice;
63pub mod expr;
64#[cfg(feature = "parse")]
65pub mod parse;
66
67pub use dice::Dice;
68pub use expr::Expr;
69#[cfg(feature = "parse")]
70pub use parse::expr as parser;
71
72#[cfg(test)]
73mod tests;
74
75#[cfg(feature = "build-binary")]
76use ariadne as _;