Skip to content

Commit 7496fe2

Browse files
authored
Merge pull request #579 from swimos/rename-lanes
Adds the ability to rename lanes of agents in the derive macro.
2 parents 733ca3a + 2a2fa1a commit 7496fe2

File tree

54 files changed

+2264
-623
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

54 files changed

+2264
-623
lines changed

Cargo.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,3 +103,5 @@ percent-encoding = "2.1.0"
103103
mime = "0.3"
104104
serde_json = "1.0"
105105
serde = "1.0"
106+
convert_case = "0.6"
107+
frunk = "0.4"
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
use swim_form_derive::*;
2+
3+
fn main() {
4+
#[allow(non_snake_case)]
5+
#[derive(Form)]
6+
#[form_root(::swim_form)]
7+
enum Duplicates {
8+
First {
9+
#[form(convention = "camel")]
10+
first_field: i32,
11+
firstField: i32,
12+
},
13+
#[form(fields_convention = "camel")]
14+
Second {
15+
first_field: i32,
16+
#[form(name = "firstField")]
17+
second_field: i32,
18+
}
19+
}
20+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
error: Form field names must be unique. Duplicated names: [firstField]
2+
--> src/tests/derive/form/enum_duplicate_fields.rs:8:9
3+
|
4+
8 | / First {
5+
9 | | #[form(convention = "camel")]
6+
10 | | first_field: i32,
7+
11 | | firstField: i32,
8+
12 | | },
9+
| |_________^
10+
11+
error: Form field names must be unique. Duplicated names: [firstField]
12+
--> src/tests/derive/form/enum_duplicate_fields.rs:13:9
13+
|
14+
13 | / #[form(fields_convention = "camel")]
15+
14 | | Second {
16+
15 | | first_field: i32,
17+
16 | | #[form(name = "firstField")]
18+
17 | | second_field: i32,
19+
18 | | }
20+
| |_________^
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
use swim_form_derive::*;
2+
3+
fn main() {
4+
#[allow(non_snake_case)]
5+
#[derive(Form)]
6+
#[form_root(::swim_form)]
7+
enum Duplicates {
8+
First {
9+
first_field: i32,
10+
second_Field: i32,
11+
},
12+
#[form(tag = "First")]
13+
Second,
14+
}
15+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
error: Duplicate enumeration tag: "First"
2+
--> src/tests/derive/form/enum_duplicate_tags.rs:4:5
3+
|
4+
4 | / #[allow(non_snake_case)]
5+
5 | | #[derive(Form)]
6+
6 | | #[form_root(::swim_form)]
7+
7 | | enum Duplicates {
8+
... |
9+
13 | | Second,
10+
14 | | }
11+
| |_____^
Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
1-
error: A tag name cannot be specified for an enum type, only its variants
2-
--> src/tests/derive/form/invalid_tag_placement_enum.rs:20:5
1+
error: Unrecognized attribute for 'form'.
2+
--> src/tests/derive/form/invalid_tag_placement_enum.rs:20:12
33
|
4-
20 | / #[form(tag = "Enumeration")]
5-
21 | | enum E {
6-
22 | | A,
7-
23 | | }
8-
| |_____^
4+
20 | #[form(tag = "Enumeration")]
5+
| ^^^^^^^^^^^^^^^^^^^
Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,5 @@
1-
error: Cannot use `newtype` annotation with enums
2-
--> src/tests/derive/form/newtype_enum.rs:6:5
3-
|
4-
6 | / #[form(newtype)]
5-
7 | | enum A {
6-
8 | | B,
7-
9 | | C,
8-
10 | | }
9-
| |_____^
1+
error: Unrecognized attribute for 'form'.
2+
--> src/tests/derive/form/newtype_enum.rs:6:12
3+
|
4+
6 | #[form(newtype)]
5+
| ^^^^^^^
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
use swim_form_derive::*;
2+
3+
fn main() {
4+
#[derive(Form)]
5+
#[form_root(::swim_form)]
6+
#[allow(non_snake_case)]
7+
struct Duplicates {
8+
#[form(convention = "camel")]
9+
second_field: i32,
10+
secondField: String,
11+
}
12+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
error: Form field names must be unique. Duplicated names: [secondField]
2+
--> src/tests/derive/form/struct_duplicate_fields.rs:6:5
3+
|
4+
6 | / #[allow(non_snake_case)]
5+
7 | | struct Duplicates {
6+
8 | | #[form(convention = "camel")]
7+
9 | | second_field: i32,
8+
10 | | secondField: String,
9+
11 | | }
10+
| |_____^

api/swim_form/src/tests/derive/form/unknown_container_attr.stderr

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
error: Unknown container attribute
1+
error: Unrecognized attribute for 'form'.
22
--> src/tests/derive/form/unknown_container_attr.rs:20:12
33
|
44
20 | #[form(swim)]

0 commit comments

Comments
 (0)