From d66b3b27342a04197cf884a86a9246a08b7a1e4e Mon Sep 17 00:00:00 2001 From: Charles Iliya Krempeaux Date: Thu, 28 Sep 2023 09:45:49 +0900 Subject: [PATCH] initial commits --- ent/admn/dimensiondata.go | 76 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) diff --git a/ent/admn/dimensiondata.go b/ent/admn/dimensiondata.go index 64d18f5..a931712 100644 --- a/ent/admn/dimensiondata.go +++ b/ent/admn/dimensiondata.go @@ -1,9 +1,13 @@ package admn import ( + "encoding/json" + + "sourcecode.social/reiver/go-erorr" "sourcecode.social/reiver/go-opt" ) +var _ json.Marshaler = DimensionData{} // DimensionData represents a Mastodon API "Admin::Dimension Data". // @@ -16,3 +20,75 @@ type DimensionData struct { Unit opt.Optional[string] `json:"unit"` HumanValue opt.Optional[string] `json:"human_value"` } + +func (receiver DimensionData) MarshalJSON() ([]byte, error) { + + var buffer []byte + + buffer = append(buffer, "{"...) + + { + buffer = append(buffer, `"key":`...) + + marshaled, err := json.Marshal(receiver.Key) + if nil != err { + return nil, erorr.Errorf("mstdn/ent/admn: could not marshal admn.DimensionData.Key as JSON: %w", err) + } + + buffer = append(buffer, marshaled...) + } + + { + buffer = append(buffer, `,"human_key":`...) + + marshaled, err := json.Marshal(receiver.HumanKey) + if nil != err { + return nil, erorr.Errorf("mstdn/ent/admn: could not marshal admn.DimensionData.HumanKey as JSON: %w", err) + } + + buffer = append(buffer, marshaled...) + } + + { + buffer = append(buffer, `,"value":`...) + + marshaled, err := json.Marshal(receiver.Value) + if nil != err { + return nil, erorr.Errorf("mstdn/ent/admn: could not marshal admn.DimensionData.Value as JSON: %w", err) + } + + buffer = append(buffer, marshaled...) + } + + { + if opt.Nothing[string]() != receiver.Unit { + + buffer = append(buffer, `,"unit":`...) + + marshaled, err := json.Marshal(receiver.Unit) + if nil != err { + return nil, erorr.Errorf("mstdn/ent/admn: could not marshal admn.DimensionData.Unit as JSON: %w", err) + } + + buffer = append(buffer, marshaled...) + } + } + + { + if opt.Nothing[string]() != receiver.HumanValue { + + buffer = append(buffer, `,"unit":`...) + + marshaled, err := json.Marshal(receiver.HumanValue) + if nil != err { + return nil, erorr.Errorf("mstdn/ent/admn: could not marshal admn.DimensionData.HumanValue as JSON: %w", err) + } + + buffer = append(buffer, marshaled...) + } + } + + buffer = append(buffer, "}"...) + + return buffer, nil +}