24#ifndef STELLARLIB_APP_LIFECYCLE_HPP
25#define STELLARLIB_APP_LIFECYCLE_HPP
27#include <SDL3/SDL_events.h>
31namespace stellarlib::app::internal
33template <
typename System>
40 constexpr lifecycle() noexcept = delete;
43 constexpr lifecycle(const lifecycle &) noexcept = delete;
46 constexpr lifecycle(lifecycle &&) noexcept = delete;
48 constexpr auto operator=(const lifecycle &) noexcept
49 -> lifecycle & = delete;
51 constexpr auto operator=(lifecycle &&) noexcept
52 -> lifecycle & = delete;
54 constexpr ~lifecycle() noexcept = delete;
57 template <typename Subsystem, typename Info>
59 static constexpr auto init(Info &&
info)
61 return Subsystem{std::forward<Info>(
info)};
64 template <
typename Subsystem>
66 static constexpr auto iterate(Subsystem &subsystem)
68 return subsystem.iterate();
71 template <
typename Subsystem>
73 static constexpr auto event(
const Subsystem &subsystem,
const SDL_Event &event)
75 return subsystem.event(event);
context::info info
Main initialization descriptor.
Definition init.hpp:41