| 194 | } |
| 195 | |
| 196 | func (e *Encoder) encodeRawExtension(signature string, data []byte) error { |
| 197 | if len(signature) != 4 { |
| 198 | return fmt.Errorf("invalid signature length") |
| 199 | } |
| 200 | |
| 201 | _, err := e.w.Write([]byte(signature)) |
| 202 | if err != nil { |
| 203 | return err |
| 204 | } |
| 205 | |
| 206 | err = binary.WriteUint32(e.w, uint32(len(data))) |
| 207 | if err != nil { |
| 208 | return err |
| 209 | } |
| 210 | |
| 211 | _, err = e.w.Write(data) |
| 212 | if err != nil { |
| 213 | return err |
| 214 | } |
| 215 | |
| 216 | return nil |
| 217 | } |
| 218 | |
| 219 | func (e *Encoder) timeToUint32(t *time.Time) (uint32, uint32, error) { |
| 220 | if t.IsZero() { |