aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2026-03-21 17:36:16 +0000
committerMichael Williamson <mike@zwobble.org>2026-03-21 17:36:16 +0000
commit2312e70431e6c1cb0c04c75c60e2ee82e5e37ed5 (patch)
treea4562d8447b8f5e334758644dbd129d4b9df869c /src/main/java
parent1a92052dc7b1cbcf15f0b9f497942e397375d3b4 (diff)
Serialize Patio compilation unit to Protobuf
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/shedlang/compiler/patio/protobuf/PatioToProtobuf.java13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/main/java/org/shedlang/compiler/patio/protobuf/PatioToProtobuf.java b/src/main/java/org/shedlang/compiler/patio/protobuf/PatioToProtobuf.java
index 6a849beb..334c998a 100644
--- a/src/main/java/org/shedlang/compiler/patio/protobuf/PatioToProtobuf.java
+++ b/src/main/java/org/shedlang/compiler/patio/protobuf/PatioToProtobuf.java
@@ -30,6 +30,19 @@ public class PatioToProtobuf {
return builder.build();
}
+ public static PatioCompilationUnit deserializeCompilationUnit(
+ PatioProtobuf.PatioCompilationUnit compilationUnitProtobuf
+ ) {
+ var source = deserializeSource(compilationUnitProtobuf.getSource(), Optional.empty());
+
+ return new PatioCompilationUnit(
+ compilationUnitProtobuf.getElementsList().stream()
+ .map(elementProtobuf -> deserializeCompilationUnitElement(elementProtobuf, source))
+ .collect(Collectors.toList()),
+ source
+ );
+ }
+
// == Compilation unit elements ==
public static PatioProtobuf.PatioCompilationUnitElement serializeCompilationUnitElement(