summaryrefslogtreecommitdiff
path: root/forgeConfig.marshal.go
diff options
context:
space:
mode:
Diffstat (limited to 'forgeConfig.marshal.go')
-rw-r--r--forgeConfig.marshal.go50
1 files changed, 50 insertions, 0 deletions
diff --git a/forgeConfig.marshal.go b/forgeConfig.marshal.go
new file mode 100644
index 0000000..63fa744
--- /dev/null
+++ b/forgeConfig.marshal.go
@@ -0,0 +1,50 @@
+package forgepb
+
+// TODO: autogen this
+// functions to import and export the protobuf
+// data to and from config files
+
+import (
+ "google.golang.org/protobuf/encoding/protojson"
+ "google.golang.org/protobuf/encoding/prototext"
+ "google.golang.org/protobuf/proto"
+ // "google.golang.org/protobuf/proto"
+)
+
+// human readable JSON
+func (p *ForgeConfigs) FormatJSON() string {
+ return protojson.Format(p)
+}
+
+// apparently this isn't supposed to be used?
+// https://protobuf.dev/reference/go/faq/#unstable-text
+// this is a shame because this is much nicer output than JSON Format()
+// TODO: fix things so this is the default
+func (p *ForgeConfigs) FormatTEXT() string {
+ return prototext.Format(p)
+}
+
+// unmarshalTEXT
+func (p *ForgeConfigs) UnmarshalTEXT(data []byte) error {
+ return prototext.Unmarshal(data, p)
+}
+
+// marshal json
+func (p *ForgeConfigs) MarshalJSON() ([]byte, error) {
+ return protojson.Marshal(p)
+}
+
+// unmarshal
+func (p *ForgeConfigs) UnmarshalJSON(data []byte) error {
+ return protojson.Unmarshal(data, p)
+}
+
+// marshal to wire
+func (m *ForgeConfigs) Marshal() ([]byte, error) {
+ return proto.Marshal(m)
+}
+
+// unmarshal from wire
+func (m *ForgeConfigs) Unmarshal(data []byte) error {
+ return proto.Unmarshal(data, m)
+}