// mojo/public/mojom/base/int128.mojom-blink-forward.h is auto generated by mojom_bindings_generator.py, do not edit

// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef MOJO_PUBLIC_MOJOM_BASE_INT128_MOJOM_BLINK_FORWARD_H_
#define MOJO_PUBLIC_MOJOM_BASE_INT128_MOJOM_BLINK_FORWARD_H_



#include "mojo/public/cpp/bindings/struct_forward.h"




#include "mojo/public/interfaces/bindings/native_struct.mojom-forward.h"

#ifdef KYTHE_IS_RUNNING
#pragma kythe_inline_metadata "Metadata comment"
#endif



namespace mojo_base::mojom {


}  // mojo_base::mojom


namespace mojo_base::mojom::blink {
class Int128;
using Int128Ptr = mojo::InlinedStructPtr<Int128>;

class Uint128;
using Uint128Ptr = mojo::InlinedStructPtr<Uint128>;




}  // mojo_base::mojom::blink

#endif  // MOJO_PUBLIC_MOJOM_BASE_INT128_MOJOM_BLINK_FORWARD_H_