blob: 415558c3c4d8ab56c46af26890140486930bd640 [file]
// 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.protocolvector banjo file
#pragma once
#include <type_traits>
namespace ddk {
namespace internal {
DDKTL_INTERNAL_DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_vector_of_vectors_protocol_bool, VectorOfVectorsBool,
void (C::*)(const bool* b_list, size_t b_count, bool* out_b_list, size_t b_count, size_t* out_b_actual));
DDKTL_INTERNAL_DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_vector_of_vectors_protocol_int8, VectorOfVectorsInt8,
void (C::*)(const int8_t* i8_list, size_t i8_count, int8_t* out_i8_list, size_t i8_count, size_t* out_i8_actual));
DDKTL_INTERNAL_DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_vector_of_vectors_protocol_int16, VectorOfVectorsInt16,
void (C::*)(const int16_t* i16_list, size_t i16_count, int16_t* out_i16_list, size_t i16_count, size_t* out_i16_actual));
DDKTL_INTERNAL_DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_vector_of_vectors_protocol_int32, VectorOfVectorsInt32,
void (C::*)(const int32_t* i32_list, size_t i32_count, int32_t* out_i32_list, size_t i32_count, size_t* out_i32_actual));
DDKTL_INTERNAL_DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_vector_of_vectors_protocol_int64, VectorOfVectorsInt64,
void (C::*)(const int64_t* i64_list, size_t i64_count, int64_t* out_i64_list, size_t i64_count, size_t* out_i64_actual));
DDKTL_INTERNAL_DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_vector_of_vectors_protocol_uint8, VectorOfVectorsUint8,
void (C::*)(const uint8_t* u8_list, size_t u8_count, uint8_t* out_u8_list, size_t u8_count, size_t* out_u8_actual));
DDKTL_INTERNAL_DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_vector_of_vectors_protocol_uint16, VectorOfVectorsUint16,
void (C::*)(const uint16_t* u16_list, size_t u16_count, uint16_t* out_u16_list, size_t u16_count, size_t* out_u16_actual));
DDKTL_INTERNAL_DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_vector_of_vectors_protocol_uint32, VectorOfVectorsUint32,
void (C::*)(const uint32_t* u32_list, size_t u32_count, uint32_t* out_u32_list, size_t u32_count, size_t* out_u32_actual));
DDKTL_INTERNAL_DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_vector_of_vectors_protocol_uint64, VectorOfVectorsUint64,
void (C::*)(const uint64_t* u64_list, size_t u64_count, uint64_t* out_u64_list, size_t u64_count, size_t* out_u64_actual));
DDKTL_INTERNAL_DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_vector_of_vectors_protocol_float32, VectorOfVectorsFloat32,
void (C::*)(const float* f32_list, size_t f32_count, float* out_f32_list, size_t f32_count, size_t* out_f32_actual));
DDKTL_INTERNAL_DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_vector_of_vectors_protocol_float64, VectorOfVectorsFloat64,
void (C::*)(const double* u64_list, size_t u64_count, double* out_f64_list, size_t f64_count, size_t* out_f64_actual));
DDKTL_INTERNAL_DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_vector_of_vectors_protocol_handle, VectorOfVectorsHandle,
void (C::*)(const zx_handle_t* u64_list, size_t u64_count, zx_handle_t* out_f64_list, size_t f64_count, size_t* out_f64_actual));
template <typename D>
constexpr void CheckVectorOfVectorsProtocolSubclass() {
static_assert(internal::has_vector_of_vectors_protocol_bool<D>::value,
"VectorOfVectorsProtocol subclasses must implement "
"void VectorOfVectorsBool(const bool* b_list, size_t b_count, bool* out_b_list, size_t b_count, size_t* out_b_actual);");
static_assert(internal::has_vector_of_vectors_protocol_int8<D>::value,
"VectorOfVectorsProtocol subclasses must implement "
"void VectorOfVectorsInt8(const int8_t* i8_list, size_t i8_count, int8_t* out_i8_list, size_t i8_count, size_t* out_i8_actual);");
static_assert(internal::has_vector_of_vectors_protocol_int16<D>::value,
"VectorOfVectorsProtocol subclasses must implement "
"void VectorOfVectorsInt16(const int16_t* i16_list, size_t i16_count, int16_t* out_i16_list, size_t i16_count, size_t* out_i16_actual);");
static_assert(internal::has_vector_of_vectors_protocol_int32<D>::value,
"VectorOfVectorsProtocol subclasses must implement "
"void VectorOfVectorsInt32(const int32_t* i32_list, size_t i32_count, int32_t* out_i32_list, size_t i32_count, size_t* out_i32_actual);");
static_assert(internal::has_vector_of_vectors_protocol_int64<D>::value,
"VectorOfVectorsProtocol subclasses must implement "
"void VectorOfVectorsInt64(const int64_t* i64_list, size_t i64_count, int64_t* out_i64_list, size_t i64_count, size_t* out_i64_actual);");
static_assert(internal::has_vector_of_vectors_protocol_uint8<D>::value,
"VectorOfVectorsProtocol subclasses must implement "
"void VectorOfVectorsUint8(const uint8_t* u8_list, size_t u8_count, uint8_t* out_u8_list, size_t u8_count, size_t* out_u8_actual);");
static_assert(internal::has_vector_of_vectors_protocol_uint16<D>::value,
"VectorOfVectorsProtocol subclasses must implement "
"void VectorOfVectorsUint16(const uint16_t* u16_list, size_t u16_count, uint16_t* out_u16_list, size_t u16_count, size_t* out_u16_actual);");
static_assert(internal::has_vector_of_vectors_protocol_uint32<D>::value,
"VectorOfVectorsProtocol subclasses must implement "
"void VectorOfVectorsUint32(const uint32_t* u32_list, size_t u32_count, uint32_t* out_u32_list, size_t u32_count, size_t* out_u32_actual);");
static_assert(internal::has_vector_of_vectors_protocol_uint64<D>::value,
"VectorOfVectorsProtocol subclasses must implement "
"void VectorOfVectorsUint64(const uint64_t* u64_list, size_t u64_count, uint64_t* out_u64_list, size_t u64_count, size_t* out_u64_actual);");
static_assert(internal::has_vector_of_vectors_protocol_float32<D>::value,
"VectorOfVectorsProtocol subclasses must implement "
"void VectorOfVectorsFloat32(const float* f32_list, size_t f32_count, float* out_f32_list, size_t f32_count, size_t* out_f32_actual);");
static_assert(internal::has_vector_of_vectors_protocol_float64<D>::value,
"VectorOfVectorsProtocol subclasses must implement "
"void VectorOfVectorsFloat64(const double* u64_list, size_t u64_count, double* out_f64_list, size_t f64_count, size_t* out_f64_actual);");
static_assert(internal::has_vector_of_vectors_protocol_handle<D>::value,
"VectorOfVectorsProtocol subclasses must implement "
"void VectorOfVectorsHandle(const zx_handle_t* u64_list, size_t u64_count, zx_handle_t* out_f64_list, size_t f64_count, size_t* out_f64_actual);");
}
DDKTL_INTERNAL_DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_vector_protocol_bool, VectorBool,
void (C::*)(const bool* b_list, size_t b_count, bool* out_b_list, size_t b_count, size_t* out_b_actual));
DDKTL_INTERNAL_DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_vector_protocol_int8, VectorInt8,
void (C::*)(const int8_t* i8_list, size_t i8_count, int8_t* out_i8_list, size_t i8_count, size_t* out_i8_actual));
DDKTL_INTERNAL_DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_vector_protocol_int16, VectorInt16,
void (C::*)(const int16_t* i16_list, size_t i16_count, int16_t* out_i16_list, size_t i16_count, size_t* out_i16_actual));
DDKTL_INTERNAL_DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_vector_protocol_int32, VectorInt32,
void (C::*)(const int32_t* i32_list, size_t i32_count, int32_t* out_i32_list, size_t i32_count, size_t* out_i32_actual));
DDKTL_INTERNAL_DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_vector_protocol_int64, VectorInt64,
void (C::*)(const int64_t* i64_list, size_t i64_count, int64_t* out_i64_list, size_t i64_count, size_t* out_i64_actual));
DDKTL_INTERNAL_DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_vector_protocol_uint8, VectorUint8,
void (C::*)(const uint8_t* u8_list, size_t u8_count, uint8_t* out_u8_list, size_t u8_count, size_t* out_u8_actual));
DDKTL_INTERNAL_DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_vector_protocol_uint16, VectorUint16,
void (C::*)(const uint16_t* u16_list, size_t u16_count, uint16_t* out_u16_list, size_t u16_count, size_t* out_u16_actual));
DDKTL_INTERNAL_DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_vector_protocol_uint32, VectorUint32,
void (C::*)(const uint32_t* u32_list, size_t u32_count, uint32_t* out_u32_list, size_t u32_count, size_t* out_u32_actual));
DDKTL_INTERNAL_DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_vector_protocol_uint64, VectorUint64,
void (C::*)(const uint64_t* u64_list, size_t u64_count, uint64_t* out_u64_list, size_t u64_count, size_t* out_u64_actual));
DDKTL_INTERNAL_DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_vector_protocol_float32, VectorFloat32,
void (C::*)(const float* f32_list, size_t f32_count, float* out_f32_list, size_t f32_count, size_t* out_f32_actual));
DDKTL_INTERNAL_DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_vector_protocol_float64, VectorFloat64,
void (C::*)(const double* u64_list, size_t u64_count, double* out_f64_list, size_t f64_count, size_t* out_f64_actual));
DDKTL_INTERNAL_DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_vector_protocol_handle, VectorHandle,
void (C::*)(const zx_handle_t* u64_list, size_t u64_count, zx_handle_t* out_f64_list, size_t f64_count, size_t* out_f64_actual));
template <typename D>
constexpr void CheckVectorProtocolSubclass() {
static_assert(internal::has_vector_protocol_bool<D>::value,
"VectorProtocol subclasses must implement "
"void VectorBool(const bool* b_list, size_t b_count, bool* out_b_list, size_t b_count, size_t* out_b_actual);");
static_assert(internal::has_vector_protocol_int8<D>::value,
"VectorProtocol subclasses must implement "
"void VectorInt8(const int8_t* i8_list, size_t i8_count, int8_t* out_i8_list, size_t i8_count, size_t* out_i8_actual);");
static_assert(internal::has_vector_protocol_int16<D>::value,
"VectorProtocol subclasses must implement "
"void VectorInt16(const int16_t* i16_list, size_t i16_count, int16_t* out_i16_list, size_t i16_count, size_t* out_i16_actual);");
static_assert(internal::has_vector_protocol_int32<D>::value,
"VectorProtocol subclasses must implement "
"void VectorInt32(const int32_t* i32_list, size_t i32_count, int32_t* out_i32_list, size_t i32_count, size_t* out_i32_actual);");
static_assert(internal::has_vector_protocol_int64<D>::value,
"VectorProtocol subclasses must implement "
"void VectorInt64(const int64_t* i64_list, size_t i64_count, int64_t* out_i64_list, size_t i64_count, size_t* out_i64_actual);");
static_assert(internal::has_vector_protocol_uint8<D>::value,
"VectorProtocol subclasses must implement "
"void VectorUint8(const uint8_t* u8_list, size_t u8_count, uint8_t* out_u8_list, size_t u8_count, size_t* out_u8_actual);");
static_assert(internal::has_vector_protocol_uint16<D>::value,
"VectorProtocol subclasses must implement "
"void VectorUint16(const uint16_t* u16_list, size_t u16_count, uint16_t* out_u16_list, size_t u16_count, size_t* out_u16_actual);");
static_assert(internal::has_vector_protocol_uint32<D>::value,
"VectorProtocol subclasses must implement "
"void VectorUint32(const uint32_t* u32_list, size_t u32_count, uint32_t* out_u32_list, size_t u32_count, size_t* out_u32_actual);");
static_assert(internal::has_vector_protocol_uint64<D>::value,
"VectorProtocol subclasses must implement "
"void VectorUint64(const uint64_t* u64_list, size_t u64_count, uint64_t* out_u64_list, size_t u64_count, size_t* out_u64_actual);");
static_assert(internal::has_vector_protocol_float32<D>::value,
"VectorProtocol subclasses must implement "
"void VectorFloat32(const float* f32_list, size_t f32_count, float* out_f32_list, size_t f32_count, size_t* out_f32_actual);");
static_assert(internal::has_vector_protocol_float64<D>::value,
"VectorProtocol subclasses must implement "
"void VectorFloat64(const double* u64_list, size_t u64_count, double* out_f64_list, size_t f64_count, size_t* out_f64_actual);");
static_assert(internal::has_vector_protocol_handle<D>::value,
"VectorProtocol subclasses must implement "
"void VectorHandle(const zx_handle_t* u64_list, size_t u64_count, zx_handle_t* out_f64_list, size_t f64_count, size_t* out_f64_actual);");
}
DDKTL_INTERNAL_DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_vector2_protocol_bool, Vector2Bool,
void (C::*)(const bool* b_list, size_t b_count, bool* out_b_list, size_t b_count, size_t* out_b_actual));
DDKTL_INTERNAL_DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_vector2_protocol_int8, Vector2Int8,
void (C::*)(const int8_t* i8_list, size_t i8_count, int8_t* out_i8_list, size_t i8_count, size_t* out_i8_actual));
DDKTL_INTERNAL_DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_vector2_protocol_int16, Vector2Int16,
void (C::*)(const int16_t* i16_list, size_t i16_count, int16_t* out_i16_list, size_t i16_count, size_t* out_i16_actual));
DDKTL_INTERNAL_DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_vector2_protocol_int32, Vector2Int32,
void (C::*)(const int32_t* i32_list, size_t i32_count, int32_t* out_i32_list, size_t i32_count, size_t* out_i32_actual));
DDKTL_INTERNAL_DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_vector2_protocol_int64, Vector2Int64,
void (C::*)(const int64_t* i64_list, size_t i64_count, int64_t* out_i64_list, size_t i64_count, size_t* out_i64_actual));
DDKTL_INTERNAL_DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_vector2_protocol_uint8, Vector2Uint8,
void (C::*)(const uint8_t* u8_list, size_t u8_count, uint8_t* out_u8_list, size_t u8_count, size_t* out_u8_actual));
DDKTL_INTERNAL_DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_vector2_protocol_uint16, Vector2Uint16,
void (C::*)(const uint16_t* u16_list, size_t u16_count, uint16_t* out_u16_list, size_t u16_count, size_t* out_u16_actual));
DDKTL_INTERNAL_DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_vector2_protocol_uint32, Vector2Uint32,
void (C::*)(const uint32_t* u32_list, size_t u32_count, uint32_t* out_u32_list, size_t u32_count, size_t* out_u32_actual));
DDKTL_INTERNAL_DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_vector2_protocol_uint64, Vector2Uint64,
void (C::*)(const uint64_t* u64_list, size_t u64_count, uint64_t* out_u64_list, size_t u64_count, size_t* out_u64_actual));
DDKTL_INTERNAL_DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_vector2_protocol_float32, Vector2Float32,
void (C::*)(const float* f32_list, size_t f32_count, float* out_f32_list, size_t f32_count, size_t* out_f32_actual));
DDKTL_INTERNAL_DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_vector2_protocol_float64, Vector2Float64,
void (C::*)(const double* u64_list, size_t u64_count, double* out_f64_list, size_t f64_count, size_t* out_f64_actual));
DDKTL_INTERNAL_DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_vector2_protocol_handle, Vector2Handle,
void (C::*)(const zx_handle_t* u64_list, size_t u64_count, zx_handle_t* out_f64_list, size_t f64_count, size_t* out_f64_actual));
template <typename D>
constexpr void CheckVector2ProtocolSubclass() {
static_assert(internal::has_vector2_protocol_bool<D>::value,
"Vector2Protocol subclasses must implement "
"void Vector2Bool(const bool* b_list, size_t b_count, bool* out_b_list, size_t b_count, size_t* out_b_actual);");
static_assert(internal::has_vector2_protocol_int8<D>::value,
"Vector2Protocol subclasses must implement "
"void Vector2Int8(const int8_t* i8_list, size_t i8_count, int8_t* out_i8_list, size_t i8_count, size_t* out_i8_actual);");
static_assert(internal::has_vector2_protocol_int16<D>::value,
"Vector2Protocol subclasses must implement "
"void Vector2Int16(const int16_t* i16_list, size_t i16_count, int16_t* out_i16_list, size_t i16_count, size_t* out_i16_actual);");
static_assert(internal::has_vector2_protocol_int32<D>::value,
"Vector2Protocol subclasses must implement "
"void Vector2Int32(const int32_t* i32_list, size_t i32_count, int32_t* out_i32_list, size_t i32_count, size_t* out_i32_actual);");
static_assert(internal::has_vector2_protocol_int64<D>::value,
"Vector2Protocol subclasses must implement "
"void Vector2Int64(const int64_t* i64_list, size_t i64_count, int64_t* out_i64_list, size_t i64_count, size_t* out_i64_actual);");
static_assert(internal::has_vector2_protocol_uint8<D>::value,
"Vector2Protocol subclasses must implement "
"void Vector2Uint8(const uint8_t* u8_list, size_t u8_count, uint8_t* out_u8_list, size_t u8_count, size_t* out_u8_actual);");
static_assert(internal::has_vector2_protocol_uint16<D>::value,
"Vector2Protocol subclasses must implement "
"void Vector2Uint16(const uint16_t* u16_list, size_t u16_count, uint16_t* out_u16_list, size_t u16_count, size_t* out_u16_actual);");
static_assert(internal::has_vector2_protocol_uint32<D>::value,
"Vector2Protocol subclasses must implement "
"void Vector2Uint32(const uint32_t* u32_list, size_t u32_count, uint32_t* out_u32_list, size_t u32_count, size_t* out_u32_actual);");
static_assert(internal::has_vector2_protocol_uint64<D>::value,
"Vector2Protocol subclasses must implement "
"void Vector2Uint64(const uint64_t* u64_list, size_t u64_count, uint64_t* out_u64_list, size_t u64_count, size_t* out_u64_actual);");
static_assert(internal::has_vector2_protocol_float32<D>::value,
"Vector2Protocol subclasses must implement "
"void Vector2Float32(const float* f32_list, size_t f32_count, float* out_f32_list, size_t f32_count, size_t* out_f32_actual);");
static_assert(internal::has_vector2_protocol_float64<D>::value,
"Vector2Protocol subclasses must implement "
"void Vector2Float64(const double* u64_list, size_t u64_count, double* out_f64_list, size_t f64_count, size_t* out_f64_actual);");
static_assert(internal::has_vector2_protocol_handle<D>::value,
"Vector2Protocol subclasses must implement "
"void Vector2Handle(const zx_handle_t* u64_list, size_t u64_count, zx_handle_t* out_f64_list, size_t f64_count, size_t* out_f64_actual);");
}
} // namespace internal
} // namespace ddk