diff --git a/xo-gc/include/xo/gc/GCObjectConversion.hpp b/xo-gc/include/xo/gc/GCObjectConversion.hpp new file mode 100644 index 00000000..6e3e84df --- /dev/null +++ b/xo-gc/include/xo/gc/GCObjectConversion.hpp @@ -0,0 +1,30 @@ +/** @file GCObjectConversion.hpp + * + * @author Roland Conybeare, Jan 2026 + **/ + +#pragma once + +#include +#include + +namespace xo { + namespace scm { + /** @brief compile-time conversion obj <-> T + * + * Specialize for each T that participates in conversion. + * Methods here aren't implemented + **/ + template + struct GCObjectConversion { + using AGCObject = xo::mm::AGCObject; + using AAllocator = xo::mm::AAllocator; + + static obj to_gco(obj mm, const T & x); + static T from_gco(obj mm, obj gco); + }; + + } /*namespace scm */ +} /*namespace xo*/ + +/* end GCObjectConversion.hpp */