code: func (i *IATA) UnmarshalBinary(p []byte) error {
  	b := buffer.New(p)
  	// IATA must contain at least an IAID.
  	if b.Len() < 4 {
  		return io.ErrUnexpectedEOF
  	}
  
  	b.ReadBytes(i.IAID[:])
  	return (&i.Options).UnmarshalBinary(b.Remaining())
  }
docs: // UnmarshalBinary unmarshals a raw byte slice into a IATA.
  //
  // If the byte slice does not contain enough data to form a valid IATA,
  // io.ErrUnexpectedEOF is returned.