/*
  Copyright 2020 Equinor ASA.

  This file is part of the Open Porous Media project (OPM).

  OPM is free software: you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation, either version 3 of the License, or
  (at your option) any later version.

  OPM is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.

  You should have received a copy of the GNU General Public License
  along with OPM.  If not, see <http://www.gnu.org/licenses/>.
*/

#include <stdexcept>
#include <opm/parser/eclipse/EclipseState/Schedule/MSW/icd.hpp>

#include "icd_convert.hpp"

namespace Opm {

template <>
ICDStatus from_int(int int_status) {
    switch (int_status) {
    case 0:
        return ICDStatus::OPEN;
    case 1:
        return ICDStatus::SHUT;
    default:
        throw std::invalid_argument("Invalid status value");
    }
}

template <>
int to_int(ICDStatus status) {
    switch (status) {
    case ICDStatus::OPEN:
        return 0;
    case ICDStatus::SHUT:
        return 1;
    default:
        throw std::invalid_argument("Invalid status value");
    }
}


}
