diff options
| author | 2025-03-09 17:47:56 +0100 | |
|---|---|---|
| committer | 2025-12-01 22:08:04 +0100 | |
| commit | b1af8fd87760b34e3ff2fd3bda38f211815a0473 (patch) | |
| tree | 9317fad1a7ec298d7a8d2678e4e422953bbc6f33 /vendor/codeberg.org/gruf/go-kv/v2/format/map.go | |
| parent | [chore] update URLs to forked source (diff) | |
| download | gotosocial-b1af8fd87760b34e3ff2fd3bda38f211815a0473.tar.xz | |
[chore] remove vendor
Diffstat (limited to 'vendor/codeberg.org/gruf/go-kv/v2/format/map.go')
| -rw-r--r-- | vendor/codeberg.org/gruf/go-kv/v2/format/map.go | 134 |
1 files changed, 0 insertions, 134 deletions
diff --git a/vendor/codeberg.org/gruf/go-kv/v2/format/map.go b/vendor/codeberg.org/gruf/go-kv/v2/format/map.go deleted file mode 100644 index a3c4acd60..000000000 --- a/vendor/codeberg.org/gruf/go-kv/v2/format/map.go +++ /dev/null @@ -1,134 +0,0 @@ -package format - -import ( - "unsafe" - - "codeberg.org/gruf/go-xunsafe" -) - -// iterMapType returns a FormatFunc capable of iterating -// and formatting the given map type currently in TypeIter{}. -// note this will fetch sub-FormatFuncs for key / value types. -func (fmt *Formatter) iterMapType(t xunsafe.TypeIter) FormatFunc { - - // Key / value types. - key := t.Type.Key() - elem := t.Type.Elem() - - // Get nested k / v TypeIters with appropriate flags. - flagsKey := xunsafe.ReflectMapKeyFlags(key) | flagKeyType - flagsVal := xunsafe.ReflectMapElemFlags(elem) - kt := t.Child(key, flagsKey) - vt := t.Child(elem, flagsVal) - - // Get key format func. - kfn := fmt.loadOrGet(kt) - if kfn == nil { - panic("unreachable") - } - - // Get value format func. - vfn := fmt.loadOrGet(vt) - if vfn == nil { - panic("unreachable") - } - - // Final map type. - rtype := t.Type - flags := t.Flag - - // Map type string with ptrs / refs. - typestrPtrs := typestr_with_ptrs(t) - typestrRefs := typestr_with_refs(t) - - if !needs_typestr(t) { - return func(s *State) { - if s.P == nil || *(*unsafe.Pointer)(s.P) == nil { - // Append nil. - appendNil(s) - return - } - - // Build reflect value, and then a map iterator. - v := xunsafe.BuildReflectValue(rtype, s.P, flags) - i := xunsafe.GetMapIter(v) - - // Prepend object brace. - s.B = append(s.B, '{') - - // Before len. - l := len(s.B) - - for i.Next() { - // Pass to map key func. - s.P = xunsafe.Map_Key(i) - kfn(s) - - // Add key seperator. - s.B = append(s.B, '=') - - // Pass to map elem func. - s.P = xunsafe.Map_Elem(i) - vfn(s) - - // Add comma pair seperator. - s.B = append(s.B, ',', ' ') - } - - if len(s.B) != l { - // Drop final ", ". - s.B = s.B[:len(s.B)-2] - } - - // Append object brace. - s.B = append(s.B, '}') - } - } - - return func(s *State) { - if s.P == nil || *(*unsafe.Pointer)(s.P) == nil { - // Append nil value with type. - appendNilType(s, typestrPtrs) - return - } - - // Build reflect value, and then a map iter. - v := xunsafe.BuildReflectValue(rtype, s.P, flags) - i := xunsafe.GetMapIter(v) - - // Include type info. - if s.A.WithType() { - s.B = append(s.B, typestrRefs...) - } - - // Prepend object brace. - s.B = append(s.B, '{') - - // Before len. - l := len(s.B) - - for i.Next() { - // Pass to map key func. - s.P = xunsafe.Map_Key(i) - kfn(s) - - // Add key seperator. - s.B = append(s.B, '=') - - // Pass to map elem func. - s.P = xunsafe.Map_Elem(i) - vfn(s) - - // Add comma pair seperator. - s.B = append(s.B, ',', ' ') - } - - if len(s.B) != l { - // Drop final ", ". - s.B = s.B[:len(s.B)-2] - } - - // Append object brace. - s.B = append(s.B, '}') - } -} |
