blob: 7c965c0cf944d1c93724d7cf05633d438bea16bb [file] [log] [blame]
// WARNING: This file is machine generated by fidlgen.
// fidl_experiment = output_index_json
#pragma once
#include <test/drivertwoway/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 TwoWayAddRequest = ::test::drivertwoway::TwoWayAddRequest;
using TwoWayAddResponse = ::test::drivertwoway::TwoWayAddResponse;
template <>
struct MinSize<TwoWayAddRequest> {
operator size_t() {
return MinSize<uint16_t>() + MinSize<uint16_t>();
}
};
template <>
struct Allocate<TwoWayAddRequest> {
TwoWayAddRequest operator()(FuzzInput* src, size_t* size) {
ZX_ASSERT(*size >= MinSize<TwoWayAddRequest>());
TwoWayAddRequest out;
const size_t slack_per_member = (*size - MinSize<TwoWayAddRequest>()) / 2;
size_t out_size;
out_size = MinSize<uint16_t>() + slack_per_member;
out.addend1 = Allocate<uint16_t>{}(src, &out_size);
out_size = MinSize<uint16_t>() + slack_per_member;
out.addend2 = Allocate<uint16_t>{}(src, &out_size);
return out;
}
};
template <>
struct MinSize<TwoWayAddResponse> {
operator size_t() {
return MinSize<uint16_t>();
}
};
template <>
struct Allocate<TwoWayAddResponse> {
TwoWayAddResponse operator()(FuzzInput* src, size_t* size) {
ZX_ASSERT(*size >= MinSize<TwoWayAddResponse>());
TwoWayAddResponse out;
const size_t slack_per_member = (*size - MinSize<TwoWayAddResponse>()) / 1;
size_t out_size;
out_size = MinSize<uint16_t>() + slack_per_member;
out.sum = Allocate<uint16_t>{}(src, &out_size);
return out;
}
};
} // namespace fuzzing