func()

in dax/internal/cbor/cbor.go [176:214]


func (w *Writer) writeType(mt uint64, ui uint64) (err error) {
	switch {
	case ui < Size8:
		err = w.bw.WriteByte(byte(mt + ui))
	case ui < 1<<8:
		err = w.bw.WriteByte(byte(mt + Size8))
		if err == nil {
			err = w.bw.WriteByte(byte(ui))
		}
	// Abuse append.
	case ui < 1<<16:
		_ = append(w.buf[:0],
			byte(mt+Size16),
			byte(ui>>8),
			byte(ui))
		_, err = w.bw.Write(w.buf[:3])
	case ui < 1<<32:
		_ = append(w.buf[:0],
			byte(mt+Size32),
			byte(ui>>24),
			byte(ui>>16),
			byte(ui>>8),
			byte(ui))
		_, err = w.bw.Write(w.buf[:5])
	default:
		_ = append(w.buf[:0],
			byte(mt+Size64),
			byte(ui>>56),
			byte(ui>>48),
			byte(ui>>40),
			byte(ui>>32),
			byte(ui>>24),
			byte(ui>>16),
			byte(ui>>8),
			byte(ui))
		_, err = w.bw.Write(w.buf)
	}
	return
}