// Copyright 2018 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// The definitions corresponding to the declarations in this file are
// automatically generated by the build system.

#ifndef TOOLS_FIDL_FIDLC_TESTS_EXAMPLES_H_
#define TOOLS_FIDL_FIDLC_TESTS_EXAMPLES_H_

#include <map>
#include <string>

class Examples {
 public:
  // Map from filename to raw source code.
  static std::map<std::string, std::string>& map() { return map_; }

 private:
  static std::map<std::string, std::string> map_;
};

#endif  // TOOLS_FIDL_FIDLC_TESTS_EXAMPLES_H_
