MCPcopy Index your code
hub / github.com/coder/hnsw / binaryWrite

Function binaryWrite

encode.go:66–102  ·  view source on GitHub ↗
(w io.Writer, data any)

Source from the content-addressed store, hash-verified

64}
65
66func binaryWrite(w io.Writer, data any) (int, error) {
67 switch v := data.(type) {
68 case int:
69 var buf [binary.MaxVarintLen64]byte
70 n := binary.PutVarint(buf[:], int64(v))
71 n, err := w.Write(buf[:n])
72 return n, err
73 case io.WriterTo:
74 n, err := v.WriteTo(w)
75 return int(n), err
76 case string:
77 n, err := binaryWrite(w, len(v))
78 if err != nil {
79 return n, err
80 }
81 n2, err := io.WriteString(w, v)
82 if err != nil {
83 return n + n2, err
84 }
85
86 return n + n2, nil
87 case []float32:
88 n, err := binaryWrite(w, len(v))
89 if err != nil {
90 return n, err
91 }
92 return n + binary.Size(v), binary.Write(w, byteOrder, v)
93
94 default:
95 sz := binary.Size(data)
96 err := binary.Write(w, byteOrder, data)
97 if err != nil {
98 return 0, fmt.Errorf("encoding %T: %w", data, err)
99 }
100 return sz, err
101 }
102}
103
104func multiBinaryWrite(w io.Writer, data ...any) (int, error) {
105 var written int

Callers 4

Test_binaryVarintFunction · 0.85
Test_binaryWrite_stringFunction · 0.85
multiBinaryWriteFunction · 0.85
ExportMethod · 0.85

Calls

no outgoing calls

Tested by 2

Test_binaryVarintFunction · 0.68
Test_binaryWrite_stringFunction · 0.68