mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-10-31 14:42:26 -05:00 
			
		
		
		
	- github.com/KimMachineGun/automemlimit v0.7.2 => v0.7.3
- github.com/gin-contrib/cors v1.7.5 => v1.7.6
- github.com/minio/minio-go/v7 v7.0.92 => v7.0.94
- github.com/spf13/cast v1.8.0 => v1.9.2
- github.com/uptrace/bun{,/*} v1.2.11 => v1.2.14
- golang.org/x/image v0.27.0 => v0.28.0
- golang.org/x/net v0.40.0 => v0.41.0
- code.superseriousbusiness.org/go-swagger v0.31.0-gts-go1.23-fix => v0.32.3-gts-go1.23-fix
Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4304
Co-authored-by: kim <grufwub@gmail.com>
Co-committed-by: kim <grufwub@gmail.com>
		
	
			
		
			
				
	
	
		
			97 lines
		
	
	
	
		
			2.8 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			97 lines
		
	
	
	
		
			2.8 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| // Copyright (c) 2012-2020 Ugorji Nwoke. All rights reserved.
 | |
| // Use of this source code is governed by a MIT license found in the LICENSE file.
 | |
| 
 | |
| package codec
 | |
| 
 | |
| import (
 | |
| 	"reflect"
 | |
| )
 | |
| 
 | |
| const (
 | |
| 	_               uint8 = iota
 | |
| 	simpleVdNil           = 1
 | |
| 	simpleVdFalse         = 2
 | |
| 	simpleVdTrue          = 3
 | |
| 	simpleVdFloat32       = 4
 | |
| 	simpleVdFloat64       = 5
 | |
| 
 | |
| 	// each lasts for 4 (ie n, n+1, n+2, n+3)
 | |
| 	simpleVdPosInt = 8
 | |
| 	simpleVdNegInt = 12
 | |
| 
 | |
| 	simpleVdTime = 24
 | |
| 
 | |
| 	// containers: each lasts for 8 (ie n, n+1, n+2, ... n+7)
 | |
| 	simpleVdString    = 216
 | |
| 	simpleVdByteArray = 224
 | |
| 	simpleVdArray     = 232
 | |
| 	simpleVdMap       = 240
 | |
| 	simpleVdExt       = 248
 | |
| )
 | |
| 
 | |
| var simpledescNames = map[byte]string{
 | |
| 	simpleVdNil:     "null",
 | |
| 	simpleVdFalse:   "false",
 | |
| 	simpleVdTrue:    "true",
 | |
| 	simpleVdFloat32: "float32",
 | |
| 	simpleVdFloat64: "float64",
 | |
| 
 | |
| 	simpleVdPosInt: "+int",
 | |
| 	simpleVdNegInt: "-int",
 | |
| 
 | |
| 	simpleVdTime: "time",
 | |
| 
 | |
| 	simpleVdString:    "string",
 | |
| 	simpleVdByteArray: "binary",
 | |
| 	simpleVdArray:     "array",
 | |
| 	simpleVdMap:       "map",
 | |
| 	simpleVdExt:       "ext",
 | |
| }
 | |
| 
 | |
| func simpledesc(bd byte) (s string) {
 | |
| 	s = simpledescNames[bd]
 | |
| 	if s == "" {
 | |
| 		s = "unknown"
 | |
| 	}
 | |
| 	return
 | |
| }
 | |
| 
 | |
| //------------------------------------
 | |
| 
 | |
| // SimpleHandle is a Handle for a very simple encoding format.
 | |
| //
 | |
| // simple is a simplistic codec similar to binc, but not as compact.
 | |
| //   - Encoding of a value is always preceded by the descriptor byte (bd)
 | |
| //   - True, false, nil are encoded fully in 1 byte (the descriptor)
 | |
| //   - Integers (intXXX, uintXXX) are encoded in 1, 2, 4 or 8 bytes (plus a descriptor byte).
 | |
| //     There are positive (uintXXX and intXXX >= 0) and negative (intXXX < 0) integers.
 | |
| //   - Floats are encoded in 4 or 8 bytes (plus a descriptor byte)
 | |
| //   - Length of containers (strings, bytes, array, map, extensions)
 | |
| //     are encoded in 0, 1, 2, 4 or 8 bytes.
 | |
| //     Zero-length containers have no length encoded.
 | |
| //     For others, the number of bytes is given by pow(2, bd%3)
 | |
| //   - maps are encoded as [bd] [length] [[key][value]]...
 | |
| //   - arrays are encoded as [bd] [length] [value]...
 | |
| //   - extensions are encoded as [bd] [length] [tag] [byte]...
 | |
| //   - strings/bytearrays are encoded as [bd] [length] [byte]...
 | |
| //   - time.Time are encoded as [bd] [length] [byte]...
 | |
| //
 | |
| // The full spec will be published soon.
 | |
| type SimpleHandle struct {
 | |
| 	binaryEncodingType
 | |
| 	notJsonType
 | |
| 	BasicHandle
 | |
| 
 | |
| 	// EncZeroValuesAsNil says to encode zero values for numbers, bool, string, etc as nil
 | |
| 	EncZeroValuesAsNil bool
 | |
| }
 | |
| 
 | |
| // Name returns the name of the handle: simple
 | |
| func (h *SimpleHandle) Name() string { return "simple" }
 | |
| 
 | |
| func (h *SimpleHandle) desc(bd byte) string { return simpledesc(bd) }
 | |
| 
 | |
| // SetBytesExt sets an extension
 | |
| func (h *SimpleHandle) SetBytesExt(rt reflect.Type, tag uint64, ext BytesExt) (err error) {
 | |
| 	return h.SetExt(rt, tag, makeExt(ext))
 | |
| }
 |