Q: Missing type and simplify generated code
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
调研方向
先阅读 my_struct.schema.json 和 my_struct.schema.rs.txt,然后将生成的输出与 issue 中的 quicktype 示例进行比较。确定生成器目前如何表示 schema,以及对于 my_struct 类型和直接原始类型需要进行哪些更改;当生成的 Rust 与所要求的形状一致时,即表示完成。
由索引模型根据 Issue 内容生成。
描述
I'm experimenting with code generation based on schemas generated by the glaze C++ library.
The following C++ struct
struct my_struct {
int i{};
double d{};
std::string hello{};
std::array<uint64_t, 3> arr{};
std::map<std::string, int> map{};
};
yields this schema:
And this is the generated rust code.
I was wondering the following:
- Apparently, there is no rust equivalent of
my_structbeing generated. Instead just for every type insidemy_struct. Is there maybe an issue with the schema? - Is it somehow possible to prevent generating wrapper types for types like
Doubleetc and just use equivalent types directly?
To demonstrate the latter: I pasted the schema to quicktype and the result seems quite idiomatic:
use serde::{Serialize, Deserialize};
use std::collections::HashMap;
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MyStruct {
arr: Option<Vec<i64>>,
d: Option<f64>,
hello: Option<String>,
i: Option<i64>,
map: Option<HashMap<String, i64>>,
}
(note: one can get rid of generating all the values as Option by adding "required": ["arr", "d", "hello", "i", "map"], )
- 主要语言
- Rust
- 星标
- 907
- 派生
- 115
- 平均合并
- 20 小时 24 分钟
- 30 天内合并 PR
- 15
环境准备
这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
oxidecomputer/typify 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 70/100
oxidecomputer/typify#1077 · 1 条评论 ·
维护者通常 1 天内回复
-
难度 3/5 1-2 天 新手友好度 55/100
oxidecomputer/typify#1075 · 1 条评论 ·
维护者通常 1 天内回复
-
难度 4/5 3-5 天 新手友好度 50/100
oxidecomputer/typify#1060 ·
维护者通常 1 天内回复
-
难度 5/5 一周以上 新手友好度 48/100
oxidecomputer/typify#1059 ·
维护者通常 1 天内回复
-
难度 3/5 1-2 天 新手友好度 65/100
oxidecomputer/typify#1022 · 1 条评论 ·
维护者通常 1 天内回复
查看 oxidecomputer/typify 的全部 Issue
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 75/100
objectionary/sodg.rs#301 ·
-
[Bug] Completion info popup (.cm-completionInfo) ignores the configured editor font可能已有人在做 关联的 PR 仍在进行中或已合并。 未关闭bug user-priority/P2
难度 2/5 1-3 小时 新手友好度 62/100
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 65/100
rescript-lang/rescript#8765 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 72/100
nautechsystems/nautilus_trader#5287 ·
维护者通常 1 天内回复
-
bug
难度 2/5 1-3 小时 新手友好度 62/100
farion1231/cc-switch#8072 ·
维护者通常 1 天内回复