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

#pragma once

#include <fidl/test/error/llcpp/fidl.h>
namespace fidl_test_error {
namespace testing {

class Example_TestBase
    : public ::fidl::WireInterface<::fidl_test_error::Example> {
 public:
  virtual ~Example_TestBase() {}
  virtual void NotImplemented_(const std::string& name,
                               ::fidl::CompleterBase& completer) = 0;

  using Interface = ::fidl::WireInterface<::fidl_test_error::Example>;
  virtual void foo(
      ::fidl::StringView s,
      ::fidl::WireInterface<::fidl_test_error::Example>::fooCompleter::Sync&
          completer) override {
    NotImplemented_("foo", completer);
  }
};
}  // namespace testing
}  // namespace fidl_test_error
