From 0a1aa8c0f1f04b5f94c735b39167ce8e74bcb473 Mon Sep 17 00:00:00 2001 From: Roland Conybeare Date: Sun, 25 Jan 2026 10:09:53 -0500 Subject: [PATCH] xo-gc: + GCObjectConversion template --- xo-gc/include/xo/gc/GCObjectConversion.hpp | 30 ++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 xo-gc/include/xo/gc/GCObjectConversion.hpp 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 */