blob: ae634a3a958b0abf827159ceb17d59e4e38b3d0f [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.simple banjo file
#pragma once
#include <type_traits>
namespace ddk {
namespace internal {
DDKTL_INTERNAL_DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_drawing_protocol_draw, DrawingDraw,
void (C::*)(const point_t* p, direction_t d));
DDKTL_INTERNAL_DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_drawing_protocol_draw_lots, DrawingDrawLots,
zx_status_t (C::*)(zx::vmo commands, point_t* out_p));
DDKTL_INTERNAL_DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_drawing_protocol_draw_array, DrawingDrawArray,
zx_status_t (C::*)(const point_t points[4]));
DDKTL_INTERNAL_DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_drawing_protocol_describe, DrawingDescribe,
void (C::*)(const char* one, char* out_two, size_t two_capacity));
template <typename D>
constexpr void CheckDrawingProtocolSubclass() {
static_assert(internal::has_drawing_protocol_draw<D>::value,
"DrawingProtocol subclasses must implement "
"void DrawingDraw(const point_t* p, direction_t d);");
static_assert(internal::has_drawing_protocol_draw_lots<D>::value,
"DrawingProtocol subclasses must implement "
"zx_status_t DrawingDrawLots(zx::vmo commands, point_t* out_p);");
static_assert(internal::has_drawing_protocol_draw_array<D>::value,
"DrawingProtocol subclasses must implement "
"zx_status_t DrawingDrawArray(const point_t points[4]);");
static_assert(internal::has_drawing_protocol_describe<D>::value,
"DrawingProtocol subclasses must implement "
"void DrawingDescribe(const char* one, char* out_two, size_t two_capacity);");
}
} // namespace internal
} // namespace ddk