class ActiveRecord::Encryption::Message

See Encryptor#encrypt
* A list of unencrypted headers
* An encrypted payload
A message defines the structure of the data we store in encrypted attributes. It contains:

def ==(other_message)

def ==(other_message)
  payload == other_message.payload && headers == other_message.headers
end

def initialize(payload: nil, headers: {})

def initialize(payload: nil, headers: {})
  validate_payload_type(payload)
  @payload = payload
  @headers = Properties.new(headers)
end

def validate_payload_type(payload)

def validate_payload_type(payload)
  unless payload.is_a?(String) || payload.nil?
    raise ActiveRecord::Encryption::Errors::ForbiddenClass, "Only string payloads allowed"
  end
end