Skip to content

Commit e0af552

Browse files
committed
Add codegen for cw_schema
1 parent c4aa695 commit e0af552

File tree

7 files changed

+218
-33
lines changed

7 files changed

+218
-33
lines changed

Cargo.lock

Lines changed: 7 additions & 12 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/cw-schema-derive/src/expand.rs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,10 @@ use owo_colors::{OwoColorize, Style};
55
use proc_macro2::TokenStream;
66
use quote::{format_ident, quote};
77
use std::{
8-
borrow::Cow, env, fmt::Display, io::{self, Write as _}
8+
borrow::Cow,
9+
env,
10+
fmt::Display,
11+
io::{self, Write as _},
912
};
1013
use syn::{DataEnum, DataStruct, DataUnion, DeriveInput, Lit};
1114

@@ -38,7 +41,10 @@ fn print_warning(title: impl Display, content: impl Display) -> io::Result<()> {
3841

3942
write!(sink, "{}", " = ".style(blue))?;
4043
write!(sink, "{}", "note: ".style(bold))?;
41-
writeln!(sink, "set `{DISABLE_WARNINGS_VAR}=1` to silence this warning")?;
44+
writeln!(
45+
sink,
46+
"set `{DISABLE_WARNINGS_VAR}=1` to silence this warning"
47+
)?;
4248

4349
Ok(())
4450
}

packages/cw-schema/src/default_impls.rs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,19 @@
11
use crate::{Node, NodeType, Schemaifier};
22
use alloc::{borrow::Cow, string::String, vec, vec::Vec};
33

4+
impl Schemaifier for () {
5+
fn visit_schema(visitor: &mut crate::SchemaVisitor) -> crate::DefinitionReference {
6+
visitor.insert(
7+
Self::id(),
8+
Node {
9+
name: Cow::Borrowed("Unit"),
10+
description: None,
11+
value: NodeType::Unit,
12+
},
13+
)
14+
}
15+
}
16+
417
impl Schemaifier for String {
518
fn visit_schema(visitor: &mut crate::SchemaVisitor) -> crate::DefinitionReference {
619
visitor.insert(

packages/cw-schema/src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ pub enum NodeType {
112112
Optional {
113113
inner: DefinitionReference,
114114
},
115+
Unit,
115116
}
116117

117118
#[skip_serializing_none]

packages/schema-derive/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ license = "Apache-2.0"
1010
[dependencies]
1111
proc-macro2 = "1"
1212
quote = "1"
13+
strum = { version = "0.26.3", features = ["derive"] }
1314
syn = { version = "2", features = ["extra-traits", "full", "printing"] }
1415

1516
[lib]

0 commit comments

Comments
 (0)