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

// fidl_experiment = output_index_json

#pragma once

#include <fidl/test.dependent/cpp/natural_ostream.h>
#include <fidl/test.structdefaultvalueenumlibraryreference/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_structdefaultvalueenumlibraryreference::Foo> {
  static std::ostream& Format(std::ostream& os, const ::test_structdefaultvalueenumlibraryreference::Foo& value);
};

namespace test_structdefaultvalueenumlibraryreference {

std::ostream& operator<<(std::ostream& os, const ::test_structdefaultvalueenumlibraryreference::Foo& value);

}  // namespace test_structdefaultvalueenumlibraryreference

#ifdef __Fuchsia__

#endif  // __Fuchsia__

#pragma clang diagnostic pop
