Program Listing for File profiles.hpp

Return to documentation for file (include/eat/process/profiles.hpp)

#pragma once
#include <stdexcept>
#include <variant>

namespace eat::process::profiles {

struct ITUEmissionProfile {
 public:
  ITUEmissionProfile(int level) : level_(level) {
    if (level_ < 0 || level_ > 2) throw std::invalid_argument{"level must be 0, 1 or 2"};
  }

  int level() const { return level_; }

 private:
  int level_;
};

using Profile = std::variant<ITUEmissionProfile>;
}  // namespace eat::process::profiles