// License: Modified MIT (NON-AI) // See the LICENSE file in the root directory for license information. // Copyright 2025 Timothy Prepscius #pragma once #include namespace tjp::core { //namespace variant { struct Variant; } template void io_dispatch_failed(IO &io, T &t) { static_assert(always_false::value, "io_ or (io_w and io_r) must be defined for non trivial types"); } template void io_(IO &io, T &t) { io.on_dispatch_any(t); } template void io_w(IO &io, const T &t) { io_(io, const_cast(t)); } template void io_w_(IO &io, const T &t) { io_w(io, t); } template void io_r(IO &io, T &t) { io_(io, t); } template void io_r_(IO &io, T &t) { io_r(io, t); } } // namespace