#pragma once
#include "Loop.h"
#include <panda/unievent/BackendHandle.h>
namespace xs {
namespace unievent {
Sv handle_perl_class(const panda::unievent::HandleType&);
void register_perl_class(const panda::unievent::HandleType&, const Stash&);
}
template <class TYPE> struct Typemap<panda::unievent::Handle*, TYPE> : TypemapObject<panda::unievent::Handle*, TYPE, ObjectTypeRefcntPtr, ObjectStorageMGBackref, DynamicCast> {
using Super = TypemapObject<panda::unievent::Handle*, TYPE, ObjectTypeRefcntPtr, ObjectStorageMGBackref, DynamicCast>;
static panda::string_view package() {return "";}
static Sv create (const TYPE& var, Sv proto = Sv()) {
if (!var) return &PL_sv_undef;
if (!proto && !Typemap<TYPE>::package().length()) {
proto = unievent::handle_perl_class(var->type());
}
return Super::create(var, proto);
}
};
template <class TYPE> struct Typemap<panda::unievent::BackendHandle*, TYPE> : Typemap<panda::unievent::Handle*, TYPE> {};
}