diff options
| author | Michael Williamson <mike@zwobble.org> | 2026-07-24 14:48:20 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2026-07-24 14:48:20 +0100 |
| commit | 3d82d75006363dd0c2243ecf3ff4da0c10c88881 (patch) | |
| tree | 5258f2200c195f9ccac2580073c5201666be0c64 /src | |
| parent | 98b6ebd8aaea0f4318de3fcc750d8d24cfb299bc (diff) | |
Extract mapErr
Diffstat (limited to 'src')
| -rw-r--r-- | src/main/java/org/zwobble/hobgoblin/compiler/output/generators/rusttransient0/RustTransient0Generator.java | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/rusttransient0/RustTransient0Generator.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/rusttransient0/RustTransient0Generator.java index 5552f2d..785d20e 100644 --- a/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/rusttransient0/RustTransient0Generator.java +++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/rusttransient0/RustTransient0Generator.java @@ -16,6 +16,7 @@ import java.nio.file.Path; import java.util.ArrayList; import java.util.List; import java.util.Optional; +import java.util.function.Function; import java.util.stream.IntStream; import java.util.stream.Stream; @@ -272,6 +273,22 @@ public class RustTransient0Generator implements Generator { } private RustExpression mapErrToInvalidData(RustExpression result) { + return mapErr( + result, + error -> new RustCallExpression( + RustPath.global("std", "io", "Error", "new"), + List.of( + RustPath.global("std", "io", "ErrorKind", "InvalidData"), + RustPath.of(error) + ) + ) + ); + } + + private RustExpression mapErr( + RustExpression result, + Function<RustIdentifier, RustExpression> func + ) { var error = RustIdentifier.of("error"); return methodCall( @@ -280,13 +297,7 @@ public class RustTransient0Generator implements Generator { List.of( new RustClosureExpression( List.of(new RustIdentifierPattern(error)), - new RustCallExpression( - RustPath.global("std", "io", "Error", "new"), - List.of( - RustPath.global("std", "io", "ErrorKind", "InvalidData"), - RustPath.of(error) - ) - ) + func.apply(error) ) ) ); |
