internal static string GetError(QiFuture future) => qi_future_get_error(future.Handle);
internal static bool IsFinished(QiFuture future) => Convert.ToBoolean(qi_future_is_finished(future.Handle));
internal static void Cancel(QiFuture future) => qi_future_cancel(future.Handle);
internal static void Wait(QiFuture future, int timeout) => qi_future_wait(future.Handle, timeout);
internal static bool HasValue(QiFuture future, int timeout) => Convert.ToBoolean(qi_future_has_value(future.Handle, timeout));
internal static void Destroy(QiFuture future) => qi_future_destroy(future.Handle);
internal static void AddCallback(QiFuture future, QiApiFutureCallback cb, IntPtr userData) => qi_future_add_callback(future.Handle, cb, userData);
internal static bool HasError(QiFuture future, int timeout) => Convert.ToBoolean(qi_future_has_error(future.Handle, timeout));
internal static void AddCallback(QiFuture future, QiApiFutureCallback cb) => qi_future_add_callback(future.Handle, cb, IntPtr.Zero);
internal static QiFuture Clone(QiFuture future) => new QiFuture(qi_future_clone(future.Handle));
internal static QiObject GetObject(QiFuture future) => new QiObject(qi_future_get_object(future.Handle));
internal static bool IsRunning(QiFuture future) => Convert.ToBoolean(qi_future_is_running(future.Handle));
internal static bool IsCanceled(QiFuture future) => Convert.ToBoolean(qi_future_is_canceled(future.Handle));
internal static QiValue GetValue(QiFuture future) => new QiValue(qi_future_get_value(future.Handle));
internal static ulong GetUInt64Default(QiFuture future, ulong defaultValue) => qi_future_get_uint64_default(future.Handle, defaultValue);
internal static string GetString(QiFuture future) => qi_future_get_string(future.Handle);