atelier_lib/
lib.rs

1/*!
2Combined crate for all Atelier sub-crates incorporated as features. Atelier is a Rust native
3library, and tools, for the AWS [Smithy](https://github.com/awslabs/smithy) Interface Definition
4Language.
5
6# Features
7
8The aim of this crate is to provide a single client interface over a set of crates that provide
9different Atelier capabilities. The following table shows the mapping from individual crate to the
10combined module path in this library. The column _Default_ indicates those that are included in the
11default feature, although the core will be included regardless of any feature selection.
12
13| Feature name | Default | Individual crate                                     | Target module path     | Purpose                                               |
14|--------------|---------|------------------------------------------------------|------------------------|-------------------------------------------------------|
15| N/A          | **Yes** | [atelier_core](https://docs.rs/atelier_core)         | `::core`               | Semantic model, builders, and API traits.             |
16| "assembler"  | **Yes** | [atelier_assembler](https://docs.rs/atelier_assembler) | `::assembler`        | Model assembly from multiple files.                   |
17| "describe"   | **Yes** | [atelier_describe](https://docs.rs/atelier_describe) | `::format::document`   | Writing markdown documentation.                       |
18|              |         |                                                      | `::format::graphml`    | Writing GraphML visualizations.                       |
19|              |         |                                                      | `::format::plant_uml`  | Writing UML visualizations.                           |
20| "json"       | **Yes** | [atelier_json](https://docs.rs/atelier_json)         | `::format::json`       | Reading and Writing JSON AST representation.          |
21| "openapi"    | No      | [atelier_openapi](https://docs.rs/atelier_openapi)   | `::format::openapi`    | Reading and Writing OpenAPI representations.          |
22| "rdf"        | No      | [atelier_rdf](https://docs.rs/atelier_rdf)           | `::format::rdf`        | Reading and Writing RDF representations.              |
23| "smithy"     | **Yes** | [atelier_smithy](https://docs.rs/atelier_smithy)     | `::format::smithy`     | Reading and Writing the Smithy native representation. |
24
25This crate also provides some pre-defined [action](actions/index.html) functions for linting and
26validating models.
27
28*/
29
30#![warn(
31    // ---------- Stylistic
32    future_incompatible,
33    nonstandard_style,
34    rust_2018_idioms,
35    trivial_casts,
36    trivial_numeric_casts,
37    // ---------- Public
38    missing_debug_implementations,
39    missing_docs,
40    unreachable_pub,
41    // ---------- Unsafe
42    unsafe_code,
43    // ---------- Unused
44    unused_extern_crates,
45    unused_import_braces,
46    unused_qualifications,
47    unused_results,
48)]
49
50pub use atelier_core as core;
51
52pub mod actions;
53
54#[cfg(feature = "assembler")]
55pub use atelier_assembler as assembler;
56
57#[cfg(any(
58    feature = "describe",
59    feature = "json",
60    feature = "openapi",
61    feature = "rdf",
62    feature = "smithy",
63))]
64pub mod format;