| // Copyright 2017 The Chromium Authors. All rights reserved. | 
 | // Use of this source code is governed by a BSD-style license that can be | 
 | // found in the LICENSE file. | 
 |  | 
 | #ifndef MOJO_PUBLIC_CPP_BINDINGS_UNIQUE_PTR_IMPL_REF_TRAITS_H_ | 
 | #define MOJO_PUBLIC_CPP_BINDINGS_UNIQUE_PTR_IMPL_REF_TRAITS_H_ | 
 |  | 
 | namespace mojo { | 
 |  | 
 | // Traits for a binding's implementation reference type. | 
 | // This corresponds to a unique_ptr reference type. | 
 | template <typename Interface> | 
 | struct UniquePtrImplRefTraits { | 
 |   using PointerType = std::unique_ptr<Interface>; | 
 |  | 
 |   static bool IsNull(const PointerType& ptr) { return !ptr; } | 
 |   static Interface* GetRawPointer(PointerType* ptr) { return ptr->get(); } | 
 | }; | 
 |  | 
 | }  // namespace mojo | 
 |  | 
 | #endif  // MOJO_PUBLIC_CPP_BINDINGS_UNIQUE_PTR_IMPL_REF_TRAITS_H_ |