19 个版本
0.2.13 | 2021 年 6 月 25 日 |
---|---|
0.2.12 | 2021 年 6 月 25 日 |
0.2.9 | 2021 年 5 月 21 日 |
0.2.6 | 2021 年 4 月 30 日 |
0.1.1 | 2020 年 6 月 30 日 |
#6 in #selector
4,280 每月下载量
在 38 个 crate(直接使用 3 个) 中使用
485KB
10K SLoC
Atelier: crate atelier_smithy
提供在自身原生语言表示中读取和写入 Smithy 模型的能力。
该 crate 提供了两个底层解析器,parse_model
和 parse_selector
,分别对应核心 Model
和 Selector
类型。它们是解耦的,以允许工具用例中不需要或甚至不希望解析所有选择器表达式,以及那些选择器表达式可能在非模型场景中有用的用例。
此 crate 还为 Smithy IDL 文件提供了核心 ModelReader
和 ModelWriter
特质的实现。
示例
以下示例演示了如何使用 SmithyReader
将文件解析为内存中的模型。
use atelier_core::io::read_model_from_file;
use atelier_smithy::SmithyReader;
use std::path::PathBuf;
let path = PathBufBuf::from("tests/good/waiters.smithy");
let mut reader = SmithyReader::default();
let result = read_model_from_file(&mut reader, path);
assert!(result.is_ok());
示例 - 选择器
以下示例解析了简单的选择器表达式 "*"
,表示任何形状,并将其解析为其内存中的模型。
use atelier_smithy::parse_selector;
let result = parse_selector("*");
assert!(result.is_ok());
变更
版本 0.2.13
- 实现了使用模型组装器从多个命名空间文件构建模型时 cargo-atelier 的 lint 和 validate 应该正常工作的 功能。
- 修复了 Smithy 写入器在写入值(在特性和元数据中)时的错误。
版本 0.2.12
- 将 MemberShape 上的 ID 从 ShapeID 更改为 Identifier。这符合 Smithy IDL 的正式 BNF 和 JSON AST 使用。
版本 0.2.11
- 修复了行写入器的转义错误,这使得跨平台比较变得痛苦。
版本 0.2.10
- 修复了测试用例中的拼写错误。
版本 0.2.9
- 从核心:重新组织错误,使命名和消息一致,并删除未使用的。
版本 0.2.8
- 支持核心模型构建器,现在使用 TryFrom 而不是 From。
- 支持在抽象模型中的服务形状中添加的 "renames" 集合。
- 所有注释特征使用空对象作为值,而不是None。
- 使用新的共享atelier-test crate。
版本 0.2.7
- 支持核心模型构建器,现在使用 TryFrom 而不是 From。
- 使用新的共享atelier-test crate。
版本 0.2.6
- 由于核心中的特征API更改而更新。
版本 0.2.5
- 更新Smithy语法和解析器以匹配规范中的更改
- 将逗号 "," 字符转换为空白字符,使其成为成员分隔符的可选选项
- 移除了
br
规则,以确保成员在不同的行上定义 - 简化了具有空/有内容的对的一组规则
- 添加了两个额外的测试示例文件
版本 0.2.4
- 跟踪从
atelier_core
crate 到ShapeType
的更改。
版本 0.2.3
- 添加了对解析选择表达式的支持。
版本 0.2.2
- 修复:测试用例编译错误。
版本 0.2.1
- 基于新的核心特征
HasIdentity
和HasTraits
的更改。
版本 0.2.0
- 在Smithy团队就语义模型与Smithy团队的分离达成一致后,进行了主要重构。
版本 0.1.5
- 为
ModelReader
和ModelWriter
更改了API。- 移除了
representation
方法 - 添加了
FILE_EXTENSION
常量。
- 移除了
- 将内部模块组织更改为与json crate相匹配。
版本 0.1.4
- 验证了Smithy文件的往返,即读取到模型然后再写回来。
版本 0.1.3
- 在
ModelReader
和ModelWriter
周围的核心API中的更改。
版本 0.1.2
- 将大多数字符串移动到使用
core::syntax
。 - 修复了多个文档字符串的问题。
- 修复了空白文档特征的问题。
- 修复了空特征体语法问题。
版本 0.1.1
- 能够解析基本示例。
版本 0.1.0
- 首次发布。
- 能够编写示例天气服务,使用构建器API构建。
待办事项
- 需要有一个解析器。
依赖关系
~7–10MB
~189K SLoC