// Generated by jextract package demo.sqlite; import java.lang.invoke.*; import java.lang.foreign.*; import java.nio.ByteOrder; import java.util.*; import java.util.function.*; import java.util.stream.*; import static java.lang.foreign.ValueLayout.*; import static java.lang.foreign.MemoryLayout.PathElement.*; /** * {@snippet lang=c : * void (*)(void *) * } */ public final class sqlite3_bind_text$x0 { private sqlite3_bind_text$x0() { // Should not be called directly } /** * The function pointer signature, expressed as a functional interface */ public interface Function { void apply(MemorySegment _x0); } private static final FunctionDescriptor $DESC = FunctionDescriptor.ofVoid( sqlite3_h.C_POINTER ); /** * The descriptor of this function pointer */ public static FunctionDescriptor descriptor() { return $DESC; } private static final MethodHandle UP$MH = sqlite3_h.upcallHandle(sqlite3_bind_text$x0.Function.class, "apply", $DESC); /** * Allocates a new upcall stub, whose implementation is defined by {@code fi}. * The lifetime of the returned segment is managed by {@code arena} */ public static MemorySegment allocate(sqlite3_bind_text$x0.Function fi, Arena arena) { return Linker.nativeLinker().upcallStub(UP$MH.bindTo(fi), $DESC, arena); } private static final MethodHandle DOWN$MH = Linker.nativeLinker().downcallHandle($DESC); /** * Invoke the upcall stub {@code funcPtr}, with given parameters */ public static void invoke(MemorySegment funcPtr, MemorySegment _x0) { try { DOWN$MH.invokeExact(funcPtr, _x0); } catch (Error | RuntimeException ex) { throw ex; } catch (Throwable ex$) { throw new AssertionError("should not reach here", ex$); } } }