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

// fidl_experiment = output_index_json

#pragma once

#include <lib/fidl/cpp/wire/internal/transport.h>
#include <lib/fidl/cpp/wire/unknown_interactions.h>

namespace test_driverservice {

class SomeDriverProtocol final {
  SomeDriverProtocol() = delete;

 public:
  using Transport = ::fidl::internal::DriverTransport;

  static constexpr ::fidl::internal::Openness kOpenness = ::fidl::internal::Openness::kClosed;
};

}  // namespace test_driverservice
namespace fidl {

template <>
struct IsProtocol<::test_driverservice::SomeDriverProtocol> : public std::true_type {};

}  // namespace fidl
