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

// fidl_experiment = output_index_json

#include <fidl/test.inheritance/cpp/natural_types.h>

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

::test_inheritance::SuperFooRequest::Storage_ test_inheritance::SuperFooRequest::CloneStorage_() const {
  return Storage_{
      ::fidl::internal::NaturalClone(storage_.s)};
}

::test_inheritance::SuperFooResponse::Storage_ test_inheritance::SuperFooResponse::CloneStorage_() const {
  return Storage_{
      ::fidl::internal::NaturalClone(storage_.y)};
}

#pragma clang diagnostic pop
