summaryrefslogtreecommitdiff
path: root/src/main/java/moe/nea/pcj/json/JsonLikeOperations.java
diff options
context:
space:
mode:
authorLinnea Gräf <nea@nea.moe>2024-11-14 01:35:24 +0100
committerLinnea Gräf <nea@nea.moe>2024-11-14 01:35:24 +0100
commited8eb00566a5e3b7f2d5564d7977a4b3ec8fe5b3 (patch)
tree9f8418ce1f27634a5a5f37a07f57c45379584d87 /src/main/java/moe/nea/pcj/json/JsonLikeOperations.java
parent94e30f7ffbafcdd188d09d8c7bf7e4794b650018 (diff)
downloadprofunctor-codecs-java-ed8eb00566a5e3b7f2d5564d7977a4b3ec8fe5b3.tar.gz
profunctor-codecs-java-ed8eb00566a5e3b7f2d5564d7977a4b3ec8fe5b3.tar.bz2
profunctor-codecs-java-ed8eb00566a5e3b7f2d5564d7977a4b3ec8fe5b3.zip
wip
Diffstat (limited to 'src/main/java/moe/nea/pcj/json/JsonLikeOperations.java')
-rw-r--r--src/main/java/moe/nea/pcj/json/JsonLikeOperations.java32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/main/java/moe/nea/pcj/json/JsonLikeOperations.java b/src/main/java/moe/nea/pcj/json/JsonLikeOperations.java
new file mode 100644
index 0000000..7bb0162
--- /dev/null
+++ b/src/main/java/moe/nea/pcj/json/JsonLikeOperations.java
@@ -0,0 +1,32 @@
+package moe.nea.pcj.json;
+
+import moe.nea.pcj.Operation;
+import moe.nea.pcj.Result;
+import moe.nea.pcj.Unit;
+
+public interface JsonLikeOperations<Format> extends Operation<Format> {
+
+ Format createNull(Unit value);
+
+ Result<Unit, ? extends JsonLikeError> getNull(Format element);
+
+ Format createNumeric(Number value);
+
+ Result<Number, ? extends JsonLikeError> getNumeric(Format element);
+
+ Format createString(String value);
+
+ Result<String, ? extends JsonLikeError> getString(Format element);
+
+ Format createBoolean(boolean value);
+
+ Result<Boolean, ? extends JsonLikeError> getBoolean(Format format);
+
+ RecordBuilder<Format> createObject();
+
+ Result<? extends RecordView<Format>, ? extends JsonLikeError> getObject(Format format);
+
+ ListBuilder<Format, Format> createList();
+
+ Result<? extends ListView<Format>, ? extends JsonLikeError> getList(Format format);
+}