24#ifndef STELLARLIB_ECS_QUERY_HPP
25#define STELLARLIB_ECS_QUERY_HPP
31namespace stellarlib::ecs::internal
33template <
typename Query>
38 constexpr query(Query &&query,
const std::function<
void ()> &callback) noexcept
39 : _query{std::move(query)}
44 constexpr query(
const query &)
noexcept =
delete;
47 constexpr query(query &&) noexcept = delete;
49 constexpr auto operator=(const query &) noexcept
52 constexpr auto operator=(query &&) noexcept
55 constexpr ~query() noexcept
61 constexpr auto size() noexcept
63 return std::ranges::distance(_query);
67 constexpr auto begin() noexcept
69 return std::ranges::begin(_query);
73 constexpr auto end() noexcept
75 return std::ranges::end(_query);
80 const std::function<void ()> &_callback;
83template <
typename Query>
84query(Query &&,
const std::function<
void ()> &)