feat: initial commit
This commit is contained in:
commit
a161b86c9a
705 changed files with 288162 additions and 0 deletions
68
vendor/sourcery.dny.nu/longdistance/internal/json/json.go
vendored
Normal file
68
vendor/sourcery.dny.nu/longdistance/internal/json/json.go
vendored
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
package json
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
)
|
||||
|
||||
type RawMessage = json.RawMessage
|
||||
type Object map[string]RawMessage
|
||||
type Array []RawMessage
|
||||
|
||||
var Compact = json.Compact
|
||||
var Marshal = json.Marshal
|
||||
var MarshalIndent = json.MarshalIndent
|
||||
var Valid = json.Valid
|
||||
var Unmarshal = json.Unmarshal
|
||||
|
||||
var (
|
||||
beginArray = byte('[')
|
||||
beginObject = byte('{')
|
||||
beginString = byte('"')
|
||||
null = RawMessage(`null`)
|
||||
)
|
||||
|
||||
func IsNull(in RawMessage) bool {
|
||||
return bytes.Equal(in, null)
|
||||
}
|
||||
|
||||
func IsArray(in RawMessage) bool {
|
||||
if len(in) == 0 {
|
||||
return false
|
||||
}
|
||||
return in[0] == beginArray
|
||||
}
|
||||
|
||||
func IsMap(in RawMessage) bool {
|
||||
if len(in) == 0 {
|
||||
return false
|
||||
}
|
||||
return in[0] == beginObject
|
||||
}
|
||||
|
||||
func IsString(in RawMessage) bool {
|
||||
if len(in) == 0 {
|
||||
return false
|
||||
}
|
||||
return in[0] == beginString
|
||||
}
|
||||
|
||||
func IsScalar(in RawMessage) bool {
|
||||
return !IsArray(in) && !IsMap(in) && !IsNull(in)
|
||||
}
|
||||
|
||||
func MakeArray(in RawMessage) RawMessage {
|
||||
if len(in) == 0 {
|
||||
return json.RawMessage(`[]`)
|
||||
}
|
||||
|
||||
if IsArray(in) {
|
||||
return in
|
||||
}
|
||||
|
||||
return bytes.Join([][]byte{
|
||||
[]byte(`[`),
|
||||
in,
|
||||
[]byte(`]`),
|
||||
}, nil)
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue