blob: 85f2398cf362b2c4faf3c101f1687d1f817c6756 [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.simple banjo file
#pragma once
#include <type_traits>
namespace ddk {
namespace internal {
DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_drawing_protocol_draw, DrawingDraw,
void (C::*)(const point_t* p, direction_t d));
DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_drawing_protocol_draw_lots, DrawingDrawLots,
zx_status_t (C::*)(zx::vmo commands, point_t* out_p));
DECLARE_HAS_MEMBER_FN_WITH_SIGNATURE(has_drawing_protocol_draw_array, DrawingDrawArray,
zx_status_t (C::*)(const point_t points[4]));
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