void ForEachTime(unsigned item_index, C &&c) {
        assert(item_index < maps.size());

        const auto &mi = maps[item_index];

        for (unsigned i = 0; i < MAX_WEATHER_TIMES; ++i)
            if (mi.times[i])
                c(IndexToTime(i));
    }
 gcc_const
 unsigned GetItemCount() const {
     return maps.size();
 }
    bool IsTimeAvailable(unsigned item_index, unsigned time_index) const {
        assert(item_index < maps.size());
        assert(time_index < MAX_WEATHER_TIMES);

        return maps[item_index].times[time_index];
    }