Crate atelier_smithy

Crate atelier_smithy 

Source
Expand description

Provides the ability to read and write Smithy models in their own native language representation.

The crate provides two low-level parsers, parse_model and parse_selector that correspond to the core Model and Selector types. These are decouple to allow for the tool use cases where it is unnecessary or even undesirable to parse all selector expressions as well as those cases where selector expressions may be useful in non-model scenarios.

This crate also provides implementations of both the core ModelReader and ModelWriter traits for Smithy IDL files.

§Example - Model

The following demonstrates the SmithyReader to parse a file into the in-memory model.

use atelier_core::io::read_model_from_file;
use atelier_smithy::SmithyReader;
use std::path::PathBuf;

let path = PathBuf::from("tests/good/waiters.smithy");
let mut reader = SmithyReader::default();
let result = read_model_from_file(&mut reader, path);
assert!(result.is_ok());

§Example - Selector

The following example parses the simple selector expression "*", denoting any shape, into it’s in-memory model.

use atelier_smithy::parse_selector;

let result = parse_selector("*");
assert!(result.is_ok());

Structs§

SmithyReader
Read a Model from the Smithy native representation.
SmithyWriter
Write a Model in the Smithy native representation.

Constants§

FILE_EXTENSION
The file extension used by Smithy IDL files.
REPRESENTATION_NAME
The name to report in errors in this representation.

Functions§

parse_model
Parse a Smithy model from the Smithy IDL representation.
parse_selector
Parse a Smithy selector expression. These are not parsed by default when reading a Smithy model as the selectors are not necessarily required for all processing cases.