| // WARNING: This file is machine generated by fidlgen. |
| |
| // fidl_experiment = output_index_json |
| |
| #pragma once |
| |
| #include <test/inheritancewithrecursivedecl/cpp/fidl.h> |
| |
| #include "lib/fidl/cpp/fuzzing/traits.h" |
| #include "lib/fidl/cpp/internal/header.h" |
| // For ::std::max_element(). |
| #include <algorithm> |
| // For uint64_t. |
| #include <stdint.h> |
| |
| namespace fuzzing { |
| |
| using ParentFirstRequest = ::test::inheritancewithrecursivedecl::ParentFirstRequest; |
| using ChildSecondRequest = ::test::inheritancewithrecursivedecl::ChildSecondRequest; |
| |
| template <> |
| struct MinSize<ParentFirstRequest> { |
| operator size_t() { |
| return MinSize<::fidl::InterfaceRequest<::test::inheritancewithrecursivedecl::Parent>>(); |
| } |
| }; |
| template <> |
| struct Allocate<ParentFirstRequest> { |
| ParentFirstRequest operator()(FuzzInput* src, size_t* size) { |
| ZX_ASSERT(*size >= MinSize<ParentFirstRequest>()); |
| ParentFirstRequest out; |
| const size_t slack_per_member = (*size - MinSize<ParentFirstRequest>()) / 1; |
| size_t out_size; |
| out_size = MinSize<::fidl::InterfaceRequest<::test::inheritancewithrecursivedecl::Parent>>() + slack_per_member; |
| out.request = Allocate<::fidl::InterfaceRequest<::test::inheritancewithrecursivedecl::Parent>>{}(src, &out_size); |
| return out; |
| } |
| }; |
| template <> |
| struct MinSize<ChildSecondRequest> { |
| operator size_t() { |
| return MinSize<::fidl::InterfaceRequest<::test::inheritancewithrecursivedecl::Parent>>(); |
| } |
| }; |
| template <> |
| struct Allocate<ChildSecondRequest> { |
| ChildSecondRequest operator()(FuzzInput* src, size_t* size) { |
| ZX_ASSERT(*size >= MinSize<ChildSecondRequest>()); |
| ChildSecondRequest out; |
| const size_t slack_per_member = (*size - MinSize<ChildSecondRequest>()) / 1; |
| size_t out_size; |
| out_size = MinSize<::fidl::InterfaceRequest<::test::inheritancewithrecursivedecl::Parent>>() + slack_per_member; |
| out.request = Allocate<::fidl::InterfaceRequest<::test::inheritancewithrecursivedecl::Parent>>{}(src, &out_size); |
| return out; |
| } |
| }; |
| |
| } // namespace fuzzing |