code: func (d *DUIDEN) UnmarshalBinary(p []byte) error {
  	b := buffer.New(p)
  	// Too short to be valid DUIDEN
  	if b.Len() < 6 {
  		return io.ErrUnexpectedEOF
  	}
  
  	// Verify DUID type
  	dType := DUIDType(b.Read16())
  	if dType != DUIDTypeEN {
  		return errInvalidDUIDEN
  	}
  	d.Type = dType
  	d.EnterpriseNumber = b.Read32()
  	d.Identifier = b.Remaining()
  	return nil
  }
docs: // UnmarshalBinary unmarshals a raw byte slice into a DUIDEN.
  // If the byte slice does not contain enough data to form a valid
  // DUIDEN, or another DUID type is indicated, errInvalidDUIDEN is returned.