code: func (d *DUIDLLT) UnmarshalBinary(p []byte) error {
  	b := buffer.New(p)
  	// Too short to be valid DUIDLLT
  	if b.Len() < 8 {
  		return io.ErrUnexpectedEOF
  	}
  
  	// Verify DUID type
  	dType := DUIDType(b.Read16())
  	if dType != DUIDTypeLLT {
  		return errInvalidDUIDLLT
  	}
  	d.Type = dType
  	d.HardwareType = b.Read16()
  	d.Time = time.Duration(b.Read32()) * time.Second
  
  	d.HardwareAddr = b.Remaining()
  
  	return nil
  }
docs: // UnmarshalBinary unmarshals a raw byte slice into a DUIDLLT.
  // If the byte slice does not contain enough data to form a valid
  // DUIDLLT, or another DUID type is indicated, errInvalidDUIDLLT is returned.