blob: 99e85bb1872114e2aab82d3d815c8d9cc02fb4bd [file] [log] [blame]
// Copyright 2018 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// WARNING: THIS FILE IS MACHINE GENERATED. DO NOT EDIT.
// Generated from the banjo.examples.protocol.primitive banjo file
#pragma once
#include <type_traits>
namespace ddk {
namespace internal {
DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_synchronous_primitive_protocol_bool, SynchronousPrimitiveBool,
bool (C::*)(bool b, bool* out_b_2));
DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_synchronous_primitive_protocol_int8, SynchronousPrimitiveInt8,
int8_t (C::*)(int8_t i8, int8_t* out_i8_2));
DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_synchronous_primitive_protocol_int16, SynchronousPrimitiveInt16,
int16_t (C::*)(int16_t i16, int16_t* out_i16_2));
DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_synchronous_primitive_protocol_int32, SynchronousPrimitiveInt32,
int32_t (C::*)(int32_t i32, int32_t* out_i32_2));
DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_synchronous_primitive_protocol_int64, SynchronousPrimitiveInt64,
int64_t (C::*)(int64_t i64, int64_t* out_i64_2));
DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_synchronous_primitive_protocol_uint8, SynchronousPrimitiveUint8,
uint8_t (C::*)(uint8_t u8, uint8_t* out_u8_2));
DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_synchronous_primitive_protocol_uint16, SynchronousPrimitiveUint16,
uint16_t (C::*)(uint16_t u16, uint16_t* out_u16_2));
DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_synchronous_primitive_protocol_uint32, SynchronousPrimitiveUint32,
uint32_t (C::*)(uint32_t u32, uint32_t* out_u32_2));
DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_synchronous_primitive_protocol_uint64, SynchronousPrimitiveUint64,
uint64_t (C::*)(uint64_t u64, uint64_t* out_u64_2));
DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_synchronous_primitive_protocol_float32, SynchronousPrimitiveFloat32,
float (C::*)(float f32, float* out_f32_2));
DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_synchronous_primitive_protocol_float64, SynchronousPrimitiveFloat64,
double (C::*)(double u64, double* out_f64_2));
template <typename D>
constexpr void CheckSynchronousPrimitiveProtocolSubclass() {
static_assert(internal::has_synchronous_primitive_protocol_bool<D>::value,
"SynchronousPrimitiveProtocol subclasses must implement "
"bool SynchronousPrimitiveBool(bool b, bool* out_b_2);");
static_assert(internal::has_synchronous_primitive_protocol_int8<D>::value,
"SynchronousPrimitiveProtocol subclasses must implement "
"int8_t SynchronousPrimitiveInt8(int8_t i8, int8_t* out_i8_2);");
static_assert(internal::has_synchronous_primitive_protocol_int16<D>::value,
"SynchronousPrimitiveProtocol subclasses must implement "
"int16_t SynchronousPrimitiveInt16(int16_t i16, int16_t* out_i16_2);");
static_assert(internal::has_synchronous_primitive_protocol_int32<D>::value,
"SynchronousPrimitiveProtocol subclasses must implement "
"int32_t SynchronousPrimitiveInt32(int32_t i32, int32_t* out_i32_2);");
static_assert(internal::has_synchronous_primitive_protocol_int64<D>::value,
"SynchronousPrimitiveProtocol subclasses must implement "
"int64_t SynchronousPrimitiveInt64(int64_t i64, int64_t* out_i64_2);");
static_assert(internal::has_synchronous_primitive_protocol_uint8<D>::value,
"SynchronousPrimitiveProtocol subclasses must implement "
"uint8_t SynchronousPrimitiveUint8(uint8_t u8, uint8_t* out_u8_2);");
static_assert(internal::has_synchronous_primitive_protocol_uint16<D>::value,
"SynchronousPrimitiveProtocol subclasses must implement "
"uint16_t SynchronousPrimitiveUint16(uint16_t u16, uint16_t* out_u16_2);");
static_assert(internal::has_synchronous_primitive_protocol_uint32<D>::value,
"SynchronousPrimitiveProtocol subclasses must implement "
"uint32_t SynchronousPrimitiveUint32(uint32_t u32, uint32_t* out_u32_2);");
static_assert(internal::has_synchronous_primitive_protocol_uint64<D>::value,
"SynchronousPrimitiveProtocol subclasses must implement "
"uint64_t SynchronousPrimitiveUint64(uint64_t u64, uint64_t* out_u64_2);");
static_assert(internal::has_synchronous_primitive_protocol_float32<D>::value,
"SynchronousPrimitiveProtocol subclasses must implement "
"float SynchronousPrimitiveFloat32(float f32, float* out_f32_2);");
static_assert(internal::has_synchronous_primitive_protocol_float64<D>::value,
"SynchronousPrimitiveProtocol subclasses must implement "
"double SynchronousPrimitiveFloat64(double u64, double* out_f64_2);");
}
DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_async_primitive_protocol_bool, AsyncPrimitiveBool,
void (C::*)(bool b, async_primitive_bool_callback callback, void* cookie));
DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_async_primitive_protocol_int8, AsyncPrimitiveInt8,
void (C::*)(int8_t i8, async_primitive_int8_callback callback, void* cookie));
DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_async_primitive_protocol_int16, AsyncPrimitiveInt16,
void (C::*)(int16_t i16, async_primitive_int16_callback callback, void* cookie));
DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_async_primitive_protocol_int32, AsyncPrimitiveInt32,
void (C::*)(int32_t i32, async_primitive_int32_callback callback, void* cookie));
DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_async_primitive_protocol_int64, AsyncPrimitiveInt64,
void (C::*)(int64_t i64, async_primitive_int64_callback callback, void* cookie));
DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_async_primitive_protocol_uint8, AsyncPrimitiveUint8,
void (C::*)(uint8_t u8, async_primitive_uint8_callback callback, void* cookie));
DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_async_primitive_protocol_uint16, AsyncPrimitiveUint16,
void (C::*)(uint16_t u16, async_primitive_uint16_callback callback, void* cookie));
DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_async_primitive_protocol_uint32, AsyncPrimitiveUint32,
void (C::*)(uint32_t u32, async_primitive_uint32_callback callback, void* cookie));
DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_async_primitive_protocol_uint64, AsyncPrimitiveUint64,
void (C::*)(uint64_t u64, async_primitive_uint64_callback callback, void* cookie));
DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_async_primitive_protocol_float32, AsyncPrimitiveFloat32,
void (C::*)(float f32, async_primitive_float32_callback callback, void* cookie));
DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_async_primitive_protocol_float64, AsyncPrimitiveFloat64,
void (C::*)(double u64, async_primitive_float64_callback callback, void* cookie));
template <typename D>
constexpr void CheckAsyncPrimitiveProtocolSubclass() {
static_assert(internal::has_async_primitive_protocol_bool<D>::value,
"AsyncPrimitiveProtocol subclasses must implement "
"void AsyncPrimitiveBool(bool b, async_primitive_bool_callback callback, void* cookie);");
static_assert(internal::has_async_primitive_protocol_int8<D>::value,
"AsyncPrimitiveProtocol subclasses must implement "
"void AsyncPrimitiveInt8(int8_t i8, async_primitive_int8_callback callback, void* cookie);");
static_assert(internal::has_async_primitive_protocol_int16<D>::value,
"AsyncPrimitiveProtocol subclasses must implement "
"void AsyncPrimitiveInt16(int16_t i16, async_primitive_int16_callback callback, void* cookie);");
static_assert(internal::has_async_primitive_protocol_int32<D>::value,
"AsyncPrimitiveProtocol subclasses must implement "
"void AsyncPrimitiveInt32(int32_t i32, async_primitive_int32_callback callback, void* cookie);");
static_assert(internal::has_async_primitive_protocol_int64<D>::value,
"AsyncPrimitiveProtocol subclasses must implement "
"void AsyncPrimitiveInt64(int64_t i64, async_primitive_int64_callback callback, void* cookie);");
static_assert(internal::has_async_primitive_protocol_uint8<D>::value,
"AsyncPrimitiveProtocol subclasses must implement "
"void AsyncPrimitiveUint8(uint8_t u8, async_primitive_uint8_callback callback, void* cookie);");
static_assert(internal::has_async_primitive_protocol_uint16<D>::value,
"AsyncPrimitiveProtocol subclasses must implement "
"void AsyncPrimitiveUint16(uint16_t u16, async_primitive_uint16_callback callback, void* cookie);");
static_assert(internal::has_async_primitive_protocol_uint32<D>::value,
"AsyncPrimitiveProtocol subclasses must implement "
"void AsyncPrimitiveUint32(uint32_t u32, async_primitive_uint32_callback callback, void* cookie);");
static_assert(internal::has_async_primitive_protocol_uint64<D>::value,
"AsyncPrimitiveProtocol subclasses must implement "
"void AsyncPrimitiveUint64(uint64_t u64, async_primitive_uint64_callback callback, void* cookie);");
static_assert(internal::has_async_primitive_protocol_float32<D>::value,
"AsyncPrimitiveProtocol subclasses must implement "
"void AsyncPrimitiveFloat32(float f32, async_primitive_float32_callback callback, void* cookie);");
static_assert(internal::has_async_primitive_protocol_float64<D>::value,
"AsyncPrimitiveProtocol subclasses must implement "
"void AsyncPrimitiveFloat64(double u64, async_primitive_float64_callback callback, void* cookie);");
}
} // namespace internal
} // namespace ddk