Skip to content

Commit 68da8fa

Browse files
author
ericszentivanyi
committed
chore(cli): add additional_attrs as an option
1 parent c7e7a32 commit 68da8fa

1 file changed

Lines changed: 16 additions & 1 deletion

File tree

cargo-typify/src/lib.rs

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,13 @@ pub struct CliArgs {
3131
pub no_builder: bool,
3232

3333
/// Add an additional derive macro to apply to all defined types.
34-
#[arg(short, long = "additional-derive", value_name = "derive")]
34+
#[arg(short = 'd', long = "additional-derive", value_name = "derive")]
3535
pub additional_derives: Vec<String>,
3636

37+
/// Add an additional attribute to apply to all defined types.
38+
#[arg(short = 'a', long = "additional-attr", value_name = "attr")]
39+
pub additional_attrs: Vec<String>,
40+
3741
/// The output file to write to. If not specified, the input file name will
3842
/// be used with a `.rs` extension.
3943
///
@@ -146,6 +150,10 @@ pub fn convert(args: &CliArgs) -> Result<String> {
146150
settings.with_derive(derive.clone());
147151
}
148152

153+
for attr in &args.additional_attrs {
154+
settings.with_attr(attr.clone());
155+
}
156+
149157
for CrateSpec {
150158
name,
151159
version,
@@ -197,6 +205,7 @@ mod tests {
197205
input: PathBuf::from("input.json"),
198206
builder: false,
199207
additional_derives: vec![],
208+
additional_attrs: vec![],
200209
output: Some(PathBuf::from("-")),
201210
no_builder: false,
202211
crates: vec![],
@@ -213,6 +222,7 @@ mod tests {
213222
input: PathBuf::from("input.json"),
214223
builder: false,
215224
additional_derives: vec![],
225+
additional_attrs: vec![],
216226
output: Some(PathBuf::from("some_file.rs")),
217227
no_builder: false,
218228
crates: vec![],
@@ -229,6 +239,7 @@ mod tests {
229239
input: PathBuf::from("input.json"),
230240
builder: false,
231241
additional_derives: vec![],
242+
additional_attrs: vec![],
232243
output: None,
233244
no_builder: false,
234245
crates: vec![],
@@ -245,6 +256,7 @@ mod tests {
245256
input: PathBuf::from("input.json"),
246257
builder: false,
247258
additional_derives: vec![],
259+
additional_attrs: vec![],
248260
output: None,
249261
no_builder: false,
250262
crates: vec![],
@@ -264,6 +276,7 @@ mod tests {
264276
input: PathBuf::from("input.json"),
265277
builder: false,
266278
additional_derives: vec![],
279+
additional_attrs: vec![],
267280
output: None,
268281
no_builder: false,
269282
crates: vec![],
@@ -280,6 +293,7 @@ mod tests {
280293
input: PathBuf::from("input.json"),
281294
builder: false,
282295
additional_derives: vec![],
296+
additional_attrs: vec![],
283297
output: None,
284298
no_builder: true,
285299
crates: vec![],
@@ -296,6 +310,7 @@ mod tests {
296310
input: PathBuf::from("input.json"),
297311
builder: true,
298312
additional_derives: vec![],
313+
additional_attrs: vec![],
299314
output: None,
300315
no_builder: false,
301316
crates: vec![],

0 commit comments

Comments
 (0)