Skip to content

Commit 20504bb

Browse files
committed
Add props
1 parent b012f75 commit 20504bb

4 files changed

Lines changed: 10 additions & 0 deletions

File tree

processor/src/main/java/online/sharedtype/processor/context/Props.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import lombok.AccessLevel;
44
import lombok.Builder;
55
import lombok.Getter;
6+
import lombok.experimental.Accessors;
67
import online.sharedtype.SharedType;
78

89
import java.util.Map;
@@ -111,6 +112,9 @@ public static final class Rust {
111112
private final String outputFileName;
112113
private final boolean allowDeadcode;
113114
private final boolean convertToSnakeCase;
115+
@Accessors(fluent = true, chain = false)
116+
@Getter
117+
private final boolean hasEnumValueTypeAlias;
114118
private final Set<String> defaultTypeMacros;
115119
private final String targetDatetimeTypeLiteral;
116120
private final Map<String, String> typeMappings;

processor/src/main/java/online/sharedtype/processor/context/PropsFactory.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ private static Props loadProps(Properties properties) {
9090
.targetDatetimeTypeLiteral(properties.getProperty("sharedtype.rust.target-datetime-type"))
9191
.typeMappings(parseMap(properties, "sharedtype.rust.type-mappings"))
9292
.customCodePath(properties.getProperty("sharedtype.rust.custom-code-path"))
93+
.hasEnumValueTypeAlias(parseBoolean(properties, "sharedtype.rust.enum-value-type-alias"))
9394
.build())
9495
.build();
9596
}

processor/src/main/resources/sharedtype-default.properties

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,10 @@ sharedtype.rust.allow-deadcode=true
129129
## Whether to convert field names to snake_case. If set to false, #[allow(non_snake_case)] will be added
130130
sharedtype.rust.convert-to-snake-case=false
131131

132+
## Whether to have explicit type alias for enum value type
133+
## See document for more details
134+
sharedtype.rust.enum-value-type-alias=false
135+
132136
## Default type macros, comma separated
133137
sharedtype.rust.default-macros-traits=Debug
134138

processor/src/test/java/online/sharedtype/processor/context/PropsFactoryTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ void loadDefaultProps() {
7171
assertThat(rustProps.getOutputFileName()).isEqualTo("types.rs");
7272
assertThat(rustProps.isAllowDeadcode()).isEqualTo(true);
7373
assertThat(rustProps.isConvertToSnakeCase()).isEqualTo(false);
74+
assertThat(rustProps.hasEnumValueTypeAlias()).isEqualTo(true);
7475
assertThat(rustProps.getDefaultTypeMacros()).containsExactly("Debug");
7576
assertThat(rustProps.getTargetDatetimeTypeLiteral()).isEqualTo("String");
7677
assertThat(rustProps.getTypeMappings()).isEmpty();

0 commit comments

Comments
 (0)