sdml_core/lib.rs
1/*!
2Provides the core in-memory implementation of the *Simple Domain Modeling Language* (SDML).
3
4This package also includes the traits used to describe module loading as well as artifact
5generators.
6
7# Features
8
9## repr-write
10
11Includes a trait [`RepresentationWriter`] for implementers, and clients, of model representation forms requiring more than simply Serde support.
12
13## serde
14
15Support for serde derived serialization and de-serialization for all the model types.
16
17## stdlib
18
19Includes support for the standard library definitions.
20
21## stdlib-ext-config
22
23Includes support for external configuration of standard library content.
24
25## terms
26
27Includes support for term checking as a part of the standard validation process.
28
29## tree-sitter
30
31*/
32
33#![warn(
34 unknown_lints,
35 // ---------- Stylistic
36 absolute_paths_not_starting_with_crate,
37 elided_lifetimes_in_paths,
38 explicit_outlives_requirements,
39 macro_use_extern_crate,
40 nonstandard_style, /* group */
41 noop_method_call,
42 rust_2018_idioms,
43 single_use_lifetimes,
44 trivial_casts,
45 trivial_numeric_casts,
46 // ---------- Future
47 future_incompatible, /* group */
48 rust_2021_compatibility, /* group */
49 // ---------- Public
50 missing_debug_implementations,
51 // missing_docs,
52 unreachable_pub,
53 // ---------- Unsafe
54 unsafe_code,
55 unsafe_op_in_unsafe_fn,
56 // ---------- Unused
57 unused, /* group */
58)]
59#![deny(
60 // ---------- Public
61 exported_private_dependencies,
62 // ---------- Deprecated
63 anonymous_parameters,
64 bare_trait_objects,
65 ellipsis_inclusive_range_patterns,
66 // ---------- Unsafe
67 deref_nullptr,
68 drop_bounds,
69 dyn_drop,
70)]
71
72// ------------------------------------------------------------------------------------------------
73// Modules
74// ------------------------------------------------------------------------------------------------
75
76pub use sdml_errors::errors as error;
77
78pub mod config;
79
80pub mod load;
81
82pub mod model;
83
84#[cfg(feature = "repr-write")]
85pub mod repr;
86
87#[cfg(feature = "stdlib")]
88pub mod stdlib;
89
90pub mod store;
91
92pub mod syntax;