// WARNING: This file is machine generated by fidlgen.

// fidl_experiment = output_index_json

#pragma once

#include <fidl/test.struct/cpp/natural_types.h>
#include <lib/fidl/cpp/natural_ostream.h>

#include <iostream>

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wshadow"

template <>
struct fidl::ostream::Formatter<::test_struct::Simple> {
  static std::ostream& Format(std::ostream& os, const ::test_struct::Simple& value);
};
template <>
struct fidl::ostream::Formatter<::test_struct::BasicStruct> {
  static std::ostream& Format(std::ostream& os, const ::test_struct::BasicStruct& value);
};

namespace test_struct {

std::ostream& operator<<(std::ostream& os, const ::test_struct::Simple& value);

std::ostream& operator<<(std::ostream& os, const ::test_struct::BasicStruct& value);

}  // namespace test_struct

#ifdef __Fuchsia__

#endif  // __Fuchsia__

#pragma clang diagnostic pop
