type encoder … // NewEncoder returns a new encoder that writes to out in the given byte order. func newEncoder(out io.Writer, order binary.ByteOrder, fds []int) *encoder { … } // newEncoderAtOffset returns a new encoder that writes to out in the given // byte order. Specify the offset to initialize pos for proper alignment // computation. func newEncoderAtOffset(out io.Writer, offset int, order binary.ByteOrder, fds []int) *encoder { … } // Aligns the next output to be on a multiple of n. Panics on write errors. func (enc *encoder) align(n int) { … } // pad returns the number of bytes of padding, based on current position and additional offset. // and alignment. func (enc *encoder) padding(offset, algn int) int { … } // Calls binary.Write(enc.out, enc.order, v) and panics on write errors. func (enc *encoder) binwrite(v interface{ … } // Encode encodes the given values to the underlying reader. All written values // are aligned properly as required by the D-Bus spec. func (enc *encoder) Encode(vs ...interface{ … } // encode encodes the given value to the writer and panics on error. depth holds // the depth of the container nesting. func (enc *encoder) encode(v reflect.Value, depth int) { … }