func panicBinaryWrite(w io.Writer, b binary.ByteOrder, data interface{}) { if err := binary.Write(w, b, data); err != nil { panic("Error in binary.Write") } return } func panicWrite(w io.Writer, data interface{}) { if _,err := w.Write(binary.LittleEndian,data); err != nil { panic("Error in io.Writer#Write") } return } func ignoreErrors(f func()) { defer func() { _ = recover() }() f() return } func (g *Gopher) DumpBinary(w io.Writer) { // Ignore all errors ignoreErrors(panicBinaryWrite(w, binary.LittleEndian, int32(len(g.Name)))) ignoreErrors(panicWrite([]byte(g.Name))) ignoreErrors(panicBinaryWrite(w, binary.LittleEndian, g.Age)) ignoreErrors(binary.Write(w, binary.LittleEndian, g.FurColor)) }