Files
comaps/3party/opening_hours/rules_evaluation.hpp
Konstantin Pastbin e3e4a1985a Organic Maps sources as of 02.04.2025 (fad26bbf22ac3da75e01e62aa01e5c8e11861005)
To expand with full Organic Maps and Maps.ME commits history run:
  git remote add om-historic [om-historic.git repo url]
  git fetch --tags om-historic
  git replace squashed-history historic-commits
2025-05-08 21:10:51 +07:00

44 lines
1.1 KiB
C++

#pragma once
#include "opening_hours.hpp"
#include <ctime>
namespace osmoh
{
RuleState GetState(TRuleSequences const & rules, time_t const dateTime);
time_t GetNextTimeState(TRuleSequences const & rules, time_t const dateTime, RuleState state);
inline bool IsOpen(TRuleSequences const & rules, time_t const dateTime)
{
return GetState(rules, dateTime) == RuleState::Open;
}
inline time_t GetNextTimeOpen(TRuleSequences const & rules, time_t const dateTime)
{
if (GetState(rules, dateTime) == RuleState::Open)
return dateTime;
return GetNextTimeState(rules, dateTime, RuleState::Open);
}
inline bool IsClosed(TRuleSequences const & rules, time_t const dateTime)
{
return GetState(rules, dateTime) == RuleState::Closed;
}
inline time_t GetNextTimeClosed(TRuleSequences const & rules, time_t const dateTime)
{
if (GetState(rules, dateTime) == RuleState::Closed)
return dateTime;
return GetNextTimeState(rules, dateTime, RuleState::Closed);
}
inline bool IsUnknown(TRuleSequences const & rules, time_t const dateTime)
{
return GetState(rules, dateTime) == RuleState::Unknown;
}
} // namespace osmoh