#model #smithy #merge #assembly #single #different #in-memory

atelier_assembler

Implements the Smithy model assembler pattern, to merge files into a single in-memory Model

5 releases

0.1.4 Jul 12, 2021
0.1.3 Jun 25, 2021
0.1.2 Jun 25, 2021
0.1.1 May 3, 2021
0.1.0 Apr 30, 2021

#568 in Filesystem

Download history 470/week @ 2023-12-18 315/week @ 2023-12-25 318/week @ 2024-01-01 585/week @ 2024-01-08 558/week @ 2024-01-15 402/week @ 2024-01-22 729/week @ 2024-01-29 339/week @ 2024-02-05 527/week @ 2024-02-12 393/week @ 2024-02-19 377/week @ 2024-02-26 400/week @ 2024-03-04 852/week @ 2024-03-11 739/week @ 2024-03-18 745/week @ 2024-03-25 740/week @ 2024-04-01

3,114 downloads per month
Used in 37 crates (2 directly)

MIT license

580KB
11K SLoC

Atelier: crate atelier_assembler

This crate provides the model assembly capability, to merge files into a single in-memory Model.

crates.io docs.rs

A tool can add files one-by-one, or from a directory, and then process them all into a single model. This implementation understands the different registered file extensions so that it can read files in different representations and assemble them seamlessly.

Example

The following is the simple, and most common, method of using the assembler. This uses the default FileTypeRegistry and will search for all models in the set of paths specified in the environment variable "SMITHY_PATH".

use atelier_assembler::ModelAssembler;
use atelier_core::error::Result;
use atelier_core::model::Model;
use std::convert::TryFrom;

let env_assembler = ModelAssembler::default();

let model: Result<Model> = Model::try_from(env_assembler);

For more information, see the Rust Atelier book.

Changes

Version 0.1.4

  • Refactored constructors for ModelAssembler, just one 'new' function now.

Version 0.1.3

  • Added validation for swaits' resolver test.

Version 0.1.2

Version 0.1.1

  • Refactored to produce:
    • A FileReader function type that parses a file type.
    • A FileType that matches a name, reader, and MIME type.
    • A FileTypeRegistry that matches one or more file extensions to a file type.

Version 0.1.0

  • Extracted from the atelier_lib crate.

Dependencies

~8–11MB
~205K SLoC