Skip to content

Commit 14add23

Browse files
committed
Add some templates
1 parent 10ee9fa commit 14add23

File tree

4 files changed

+23
-7
lines changed

4 files changed

+23
-7
lines changed

Cargo.lock

Lines changed: 0 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/cw-schema-codegen/Cargo.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ frunk = "0.4.3"
1515
log = "0.4.22"
1616
serde_json = "1.0.128"
1717
simple_logger = "5.0.0"
18-
strum = { version = "0.26.3", default-features = false, features = ["derive"] }
1918

2019
[dev-dependencies]
2120
insta = "1.40.0"

packages/cw-schema-codegen/src/main.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,8 @@ use std::{
1010
io::{self, Write},
1111
path::PathBuf,
1212
};
13-
use strum::Display;
1413

15-
#[derive(Clone, Copy, Default, Display, ValueEnum)]
16-
#[strum(serialize_all = "kebab-case")]
14+
#[derive(Clone, Copy, Default, ValueEnum)]
1715
pub enum Language {
1816
#[default]
1917
Rust,
@@ -25,7 +23,7 @@ pub enum Language {
2523
#[clap(about, author, version)]
2624
/// Official CosmWasm codegen tool
2725
struct Opts {
28-
#[clap(default_value_t, long, short)]
26+
#[clap(default_value_t, long, short, value_enum)]
2927
/// Programming language to generate code for
3028
language: Language,
3129

packages/cw-schema-codegen/src/rust.rs

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ use askama::Template;
22

33
pub struct EnumVariantTemplate<'a> {
44
pub name: &'a str,
5-
pub types: Option<&'a [&'a str]>,
5+
pub ty: TypeTemplate<'a>,
66
}
77

88
#[derive(Template)]
@@ -11,3 +11,23 @@ pub struct EnumTemplate<'a> {
1111
pub name: &'a str,
1212
pub variants: &'a [EnumVariantTemplate<'a>],
1313
}
14+
15+
pub struct FieldTemplate<'a> {
16+
pub name: &'a str,
17+
pub ty: &'a str,
18+
}
19+
20+
pub enum TypeTemplate<'a> {
21+
Unit,
22+
Tuple(&'a [&'a str]),
23+
Named {
24+
fields: &'a [FieldTemplate<'a>],
25+
}
26+
}
27+
28+
#[derive(Template)]
29+
#[template(escape = "none", path = "rust/struct.tpl.rs")]
30+
pub struct StructTemplate<'a> {
31+
pub name: &'a str,
32+
pub ty: TypeTemplate<'a>,
33+
}

0 commit comments

Comments
 (0)