summaryrefslogtreecommitdiff
path: root/examples/15-transient-0/output
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2026-08-08 22:32:02 +0100
committerMichael Williamson <mike@zwobble.org>2026-08-08 22:33:36 +0100
commit39e34d4f524f5492065ba47b6cd33d5f272cd515 (patch)
treef16782a9292d9da9564e4ce7d5d6efb791ef0498 /examples/15-transient-0/output
parent6dd8f8fe274e11348b631abcf67ee7ccf8254997 (diff)
Partially support generic native types in java-transient-0
Diffstat (limited to 'examples/15-transient-0/output')
-rw-r--r--examples/15-transient-0/output/java/src/main/java/org/zwobble/example/types/data/HobgoblinNativeData.java4
-rw-r--r--examples/15-transient-0/output/java/src/main/java/org/zwobble/example/types/data/transient0/HobgoblinTransient0Data.java34
-rw-r--r--examples/15-transient-0/output/java/src/main/java/org/zwobble/example/types/transient0/Decoder.java13
-rw-r--r--examples/15-transient-0/output/java/src/main/java/org/zwobble/example/types/transient0/Encoder.java13
-rw-r--r--examples/15-transient-0/output/rust/src/data.rs7
-rw-r--r--examples/15-transient-0/output/rust/src/gen/data.rs5
-rw-r--r--examples/15-transient-0/output/rust/src/gen/data/transient_0.rs10
7 files changed, 86 insertions, 0 deletions
diff --git a/examples/15-transient-0/output/java/src/main/java/org/zwobble/example/types/data/HobgoblinNativeData.java b/examples/15-transient-0/output/java/src/main/java/org/zwobble/example/types/data/HobgoblinNativeData.java
index 012a091..32796b5 100644
--- a/examples/15-transient-0/output/java/src/main/java/org/zwobble/example/types/data/HobgoblinNativeData.java
+++ b/examples/15-transient-0/output/java/src/main/java/org/zwobble/example/types/data/HobgoblinNativeData.java
@@ -6,4 +6,8 @@ public class HobgoblinNativeData {
public static Native arbitraryNative() {
return new Native(0, 0);
}
+
+ public static <A, B> GenericNative<A, B> arbitraryGenericNative() {
+ throw new RuntimeException("TODO");
+ }
}
diff --git a/examples/15-transient-0/output/java/src/main/java/org/zwobble/example/types/data/transient0/HobgoblinTransient0Data.java b/examples/15-transient-0/output/java/src/main/java/org/zwobble/example/types/data/transient0/HobgoblinTransient0Data.java
index e6e3098..0044a4a 100644
--- a/examples/15-transient-0/output/java/src/main/java/org/zwobble/example/types/data/transient0/HobgoblinTransient0Data.java
+++ b/examples/15-transient-0/output/java/src/main/java/org/zwobble/example/types/data/transient0/HobgoblinTransient0Data.java
@@ -8,7 +8,10 @@ import java.io.IOException;
import java.io.OutputStream;
import java.util.List;
import java.util.Map;
+import org.zwobble.example.types.data.GenericNative;
import org.zwobble.example.types.data.Native;
+import org.zwobble.example.types.transient0.Decoder;
+import org.zwobble.example.types.transient0.Encoder;
import org.zwobble.example.types.transient0.HobgoblinTransient0Builtins;
import org.zwobble.example.types.transient0.HobgoblinTransient0TaggedSharedValue;
// Custom area end: org.zwobble.example.types.data.transient0.HobgoblinTransient0Data imports
@@ -271,6 +274,15 @@ public final class HobgoblinTransient0Data {
return new org.zwobble.example.types.data.StructWithNative(a);
}
+ public static void encodeStructWithGenericNative(org.zwobble.example.types.data.StructWithGenericNative value, java.io.OutputStream outputStream, java.util.Map<org.zwobble.example.types.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException {
+ org.zwobble.example.types.data.transient0.HobgoblinTransient0Data.encodeGenericNative(value.a(), outputStream, sharedValues, org.zwobble.example.types.transient0.HobgoblinTransient0Builtins::encodeInt32, org.zwobble.example.types.transient0.HobgoblinTransient0Builtins::encodeString);
+ }
+
+ public static org.zwobble.example.types.data.StructWithGenericNative decodeStructWithGenericNative(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException {
+ var a = org.zwobble.example.types.data.transient0.HobgoblinTransient0Data.decodeGenericNative(inputStream, sharedValues, org.zwobble.example.types.transient0.HobgoblinTransient0Builtins::decodeInt32, org.zwobble.example.types.transient0.HobgoblinTransient0Builtins::decodeString);
+ return new org.zwobble.example.types.data.StructWithGenericNative(a);
+ }
+
public static void encodeStructWithBox(org.zwobble.example.types.data.StructWithBox value, java.io.OutputStream outputStream, java.util.Map<org.zwobble.example.types.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException {
org.zwobble.example.types.data.transient0.HobgoblinTransient0Data.encodeStructWithInt32(value.inner(), outputStream, sharedValues);
}
@@ -504,5 +516,27 @@ public final class HobgoblinTransient0Data {
var b = HobgoblinTransient0Builtins.decodeInt32(inputStream, sharedValues);
return new Native(a, b);
}
+
+ public static <A, B> void encodeGenericNative(
+ GenericNative<A, B> value,
+ OutputStream outputStream,
+ Map<HobgoblinTransient0TaggedSharedValue, Long> sharedValues,
+ Encoder<A> encoderA,
+ Encoder<B> encoderB
+ ) throws IOException {
+ encoderA.encode(value.a(), outputStream, sharedValues);
+ encoderB.encode(value.b(), outputStream, sharedValues);
+ }
+
+ public static <A, B> GenericNative<A, B> decodeGenericNative(
+ InputStream inputStream,
+ List<Object> sharedValues,
+ Decoder<A> decoderA,
+ Decoder<B> decoderB
+ ) throws IOException {
+ var a = decoderA.decode(inputStream, sharedValues);
+ var b = decoderB.decode(inputStream, sharedValues);
+ return new GenericNative(a, b);
+ }
// Custom area end: org.zwobble.example.types.data.transient0.HobgoblinTransient0Data body
}
diff --git a/examples/15-transient-0/output/java/src/main/java/org/zwobble/example/types/transient0/Decoder.java b/examples/15-transient-0/output/java/src/main/java/org/zwobble/example/types/transient0/Decoder.java
new file mode 100644
index 0000000..ad1a6d0
--- /dev/null
+++ b/examples/15-transient-0/output/java/src/main/java/org/zwobble/example/types/transient0/Decoder.java
@@ -0,0 +1,13 @@
+// Generated by hobgoblin.
+
+package org.zwobble.example.types.transient0;
+
+// Custom area start: org.zwobble.example.types.transient0.Decoder imports
+// Custom area end: org.zwobble.example.types.transient0.Decoder imports
+
+public interface Decoder<T> {
+ public T decode(java.io.InputStream inputStream, java.util.List<java.lang.Object> sharedValues) throws java.io.IOException;
+
+ // Custom area start: org.zwobble.example.types.transient0.Decoder body
+ // Custom area end: org.zwobble.example.types.transient0.Decoder body
+}
diff --git a/examples/15-transient-0/output/java/src/main/java/org/zwobble/example/types/transient0/Encoder.java b/examples/15-transient-0/output/java/src/main/java/org/zwobble/example/types/transient0/Encoder.java
new file mode 100644
index 0000000..2ba43a6
--- /dev/null
+++ b/examples/15-transient-0/output/java/src/main/java/org/zwobble/example/types/transient0/Encoder.java
@@ -0,0 +1,13 @@
+// Generated by hobgoblin.
+
+package org.zwobble.example.types.transient0;
+
+// Custom area start: org.zwobble.example.types.transient0.Encoder imports
+// Custom area end: org.zwobble.example.types.transient0.Encoder imports
+
+public interface Encoder<T> {
+ public void encode(T value, java.io.OutputStream outputStream, java.util.Map<org.zwobble.example.types.transient0.HobgoblinTransient0TaggedSharedValue, java.lang.Long> sharedValues) throws java.io.IOException;
+
+ // Custom area start: org.zwobble.example.types.transient0.Encoder body
+ // Custom area end: org.zwobble.example.types.transient0.Encoder body
+}
diff --git a/examples/15-transient-0/output/rust/src/data.rs b/examples/15-transient-0/output/rust/src/data.rs
index 6078fd0..2cf748b 100644
--- a/examples/15-transient-0/output/rust/src/data.rs
+++ b/examples/15-transient-0/output/rust/src/data.rs
@@ -6,6 +6,13 @@ pub struct Native {
pub b: i32,
}
+#[derive(Clone, Debug, Hash, PartialEq)]
+pub struct GenericNative<A, B> {
+ pub a: A,
+ pub b: B,
+}
+
+
pub mod transient_0 {
use ::std::any::Any;
use ::std::sync::Arc;
diff --git a/examples/15-transient-0/output/rust/src/gen/data.rs b/examples/15-transient-0/output/rust/src/gen/data.rs
index 745bc9d..856d60f 100644
--- a/examples/15-transient-0/output/rust/src/gen/data.rs
+++ b/examples/15-transient-0/output/rust/src/gen/data.rs
@@ -122,6 +122,11 @@ pub struct StructWithNative {
}
#[derive(Clone, Debug, Hash, PartialEq)]
+pub struct StructWithGenericNative {
+ pub a: crate::data::GenericNative::<::core::primitive::i32, ::std::string::String>,
+}
+
+#[derive(Clone, Debug, Hash, PartialEq)]
pub struct StructWithBox {
pub inner: ::std::boxed::Box::<crate::data::StructWithInt32>,
}
diff --git a/examples/15-transient-0/output/rust/src/gen/data/transient_0.rs b/examples/15-transient-0/output/rust/src/gen/data/transient_0.rs
index 5ef4811..c497b57 100644
--- a/examples/15-transient-0/output/rust/src/gen/data/transient_0.rs
+++ b/examples/15-transient-0/output/rust/src/gen/data/transient_0.rs
@@ -274,6 +274,16 @@ pub fn decode_struct_with_native(reader: &mut impl std::io::Read, shared_values:
::std::io::Result::Ok(crate::data::StructWithNative { a: a })
}
+pub fn encode_struct_with_generic_native(value: &crate::data::StructWithGenericNative, writer: &mut impl std::io::Write, shared_values: &mut ::std::collections::HashMap::<::core::primitive::usize, ::core::primitive::i64>) -> ::std::io::Result::<()> {
+ todo!();
+ ::std::io::Result::Ok(())
+}
+
+pub fn decode_struct_with_generic_native(reader: &mut impl std::io::Read, shared_values: &mut ::std::vec::Vec::<::std::sync::Arc::<dyn ::std::any::Any + ::std::marker::Sync + ::std::marker::Send>>) -> ::std::io::Result::<crate::data::StructWithGenericNative> {
+ let a = todo!();
+ ::std::io::Result::Ok(crate::data::StructWithGenericNative { a: a })
+}
+
pub fn encode_struct_with_box(value: &crate::data::StructWithBox, writer: &mut impl std::io::Write, shared_values: &mut ::std::collections::HashMap::<::core::primitive::usize, ::core::primitive::i64>) -> ::std::io::Result::<()> {
crate::data::transient_0::encode_struct_with_int_32((&value.inner).as_ref(), writer, shared_values)?;
::std::io::Result::Ok(())