Skip to content

Commit be5ead2

Browse files
authored
fix: handle raw identifier struct field (#14)
1 parent 619e8b5 commit be5ead2

File tree

4 files changed

+40
-55
lines changed

4 files changed

+40
-55
lines changed

Cargo.lock

+17-53
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

safe-builder-derive/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,6 @@ proc-macro = true
1212
[dependencies]
1313
quote = "^1.0"
1414
proc-quote = "0.3.2"
15-
syn = "^1.0"
15+
syn = { version = "^1.0", features = ["parsing"] }
1616
proc-macro2 = "^1.0"
1717
convert_case = "^0.4.0"

safe-builder-derive/src/expander.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
use convert_case::*;
22
use quote::*;
33
use syn::*;
4+
use syn::ext::IdentExt;
45

56
fn create_field_type(ident: &Ident) -> Ident {
6-
let name = ident.to_string().to_case(Case::Pascal);
7+
let name = ident.unraw().to_string().to_case(Case::Pascal);
78
format_ident!("{}Type", name)
89
}
910

safe-builder/tests/all/mod.rs

+20
Original file line numberDiff line numberDiff line change
@@ -41,4 +41,24 @@ mod tests {
4141
foo
4242
)
4343
}
44+
45+
#[derive(Builder, PartialEq, Debug)]
46+
pub struct RawIdentifier {
47+
id: String,
48+
r#type: String,
49+
}
50+
#[test]
51+
fn raw_identifier_test() {
52+
let raw_ident = RawIdentifier::builder()
53+
.id("1234".to_owned())
54+
.r#type("type".to_owned())
55+
.build();
56+
assert_eq!(
57+
RawIdentifier {
58+
id: "1234".to_owned(),
59+
r#type: "type".to_owned(),
60+
},
61+
raw_ident
62+
)
63+
}
4464
}

0 commit comments

Comments
 (0)