MCPcopy Index your code
hub / github.com/godbus/dbus / decode

Method decode

decoder.go:109–267  ·  view source on GitHub ↗
(s string, depth int)

Source from the content-addressed store, hash-verified

107}
108
109func (dec *decoder) decode(s string, depth int) any {
110 dec.align(alignment(typeFor(s)))
111 switch s[0] {
112 case 'y':
113 if _, err := dec.in.Read(dec.y[:]); err != nil {
114 panic(err)
115 }
116 dec.pos++
117 return dec.y[0]
118 case 'b':
119 switch dec.decodeU() {
120 case 0:
121 return false
122 case 1:
123 return true
124 default:
125 panic(FormatError("invalid value for boolean"))
126 }
127 case 'n':
128 dec.read2buf(2)
129 dec.pos += 2
130 return int16(dec.order.Uint16(dec.buf))
131 case 'i':
132 dec.read2buf(4)
133 dec.pos += 4
134 return int32(dec.order.Uint32(dec.buf))
135 case 'x':
136 dec.read2buf(8)
137 dec.pos += 8
138 return int64(dec.order.Uint64(dec.buf))
139 case 'q':
140 dec.read2buf(2)
141 dec.pos += 2
142 return dec.order.Uint16(dec.buf)
143 case 'u':
144 return dec.decodeU()
145 case 't':
146 dec.read2buf(8)
147 dec.pos += 8
148 return dec.order.Uint64(dec.buf)
149 case 'd':
150 dec.binread(&dec.d)
151 dec.pos += 8
152 return dec.d
153 case 's':
154 length := dec.decodeU()
155 p := int(length) + 1
156 dec.read2buf(p)
157 dec.pos += p
158 return dec.conv.String(dec.buf[:len(dec.buf)-1])
159 case 'o':
160 return ObjectPath(dec.decode("s", depth).(string))
161 case 'g':
162 length := dec.decode("y", depth).(byte)
163 p := int(length) + 1
164 dec.read2buf(p)
165 dec.pos += p
166 sig, err := ParseSignature(

Callers 1

DecodeMethod · 0.95

Calls 15

alignMethod · 0.95
decodeUMethod · 0.95
read2bufMethod · 0.95
binreadMethod · 0.95
alignmentFunction · 0.85
typeForFunction · 0.85
FormatErrorTypeAlias · 0.85
ObjectPathTypeAlias · 0.85
ParseSignatureFunction · 0.85
validSingleFunction · 0.85
UnixFDTypeAlias · 0.85
UnixFDIndexTypeAlias · 0.85

Tested by

no test coverage detected