ProcMacro::from_str_function_t>::value,
"Registration callback signature not synced, check proc macro internals.");
+static bool
+available ()
+{
+ return true;
+}
+
template <typename Symbol, typename Callback>
bool
register_callback (void *handle, Symbol, std::string symbol_name,
if (!REGISTER_CALLBACK (handle, __gccrs_proc_macro_from_str_fn,
tokenstream_from_string))
return nullptr;
+ if (!REGISTER_CALLBACK (handle, __gccrs_proc_macro_is_available_fn,
+ available))
+ return nullptr;
// FIXME: Add CrateStableId handling, right now all versions may be loaded,
// even incompatible ones.
return {BANG, payload};
}
+bool
+not_available ()
+{
+ return false;
+}
+
} // namespace ProcMacro
ProcMacro::from_str_function_t __gccrs_proc_macro_from_str_fn = nullptr;
+ProcMacro::is_available_function_t __gccrs_proc_macro_is_available_fn
+ = ProcMacro::not_available;
namespace ProcMacro {
using from_str_function_t = ProcMacro::TokenStream (*) (std::string &, bool &);
+using is_available_function_t = bool (*) ();
} // namespace ProcMacro
extern "C" ProcMacro::from_str_function_t __gccrs_proc_macro_from_str_fn;
+extern "C" ProcMacro::is_available_function_t
+ __gccrs_proc_macro_is_available_fn;
#endif /* !REGISTRATION_H */