#ifndef __RUST_ASYNC_EXECUTOR_DART_H__
#define __RUST_ASYNC_EXECUTOR_DART_H__
#include <stdarg.h>
#include <stdbool.h>
#include <stdint.h>
#include <stdlib.h>
typedef struct RustAsyncExecutorDartCObject RustAsyncExecutorDartCObject;
typedef void *RustAsyncExecutorUserData;
typedef RustAsyncExecutorUserData RustAsyncExecutorExternTask;
typedef int64_t RustAsyncExecutorDartPort;
typedef bool (*RustAsyncExecutorDartPostCObject)(RustAsyncExecutorDartPort, RustAsyncExecutorDartCObject*);
#ifdef __cplusplus
extern "C" {
#endif
void rust_async_executor_dart_drop(RustAsyncExecutorExternTask task);
void rust_async_executor_dart_init(RustAsyncExecutorDartPort wake_port,
RustAsyncExecutorDartPostCObject task_post);
bool rust_async_executor_dart_poll(RustAsyncExecutorExternTask task);
#ifdef __cplusplus
} #endif
#endif