# NV::Rules::IMessageVault

class IMessageVault

  Public Types

  using Dict = IFrontend::Dict
  using RuleId = IFrontend::RuleId

  Public Functions

  virtual Dict Get(const RuleId &ruleId) const = 0

    Retrieve the message associated with `ruleId` from the vault.

    In case `ruleId` is unknown, an empty message is returned.

  virtual void Put(const RuleId &ruleId, const Dict &message) = 0

    Commit a message `message` associated with `ruleId` to the vault.

    In case multiple messages associated with the same `ruleId` are commited, the messages are merged, in such a way that new key-value pairs are added, and values of pre-existing keys are updated.

  virtual ~IMessageVault() = default