text: //===--- Ownership.h - Swift ASTs for Reference Ownership -------*- C++ -*-===//
  //
  // This source file is part of the Swift.org open source project
  //
  // Copyright (c) 2014 - 2016 Apple Inc. and the Swift project authors
  // Licensed under Apache License v2.0 with Runtime Library Exception
  //
  // See http://swift.org/LICENSE.txt for license information
  // See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
  //
  //===----------------------------------------------------------------------===//
  //
  // This file defines common structures for working with the different
  // kinds of reference ownership supported by Swift, such as 'weak' and
  // 'unowned'.
  //
  //===----------------------------------------------------------------------===//
  
  #ifndef SWIFT_OWNERSHIP_H
  #define SWIFT_OWNERSHIP_H
  
  #include <stdint.h>
  
  namespace swift {
  
  /// Different kinds of reference ownership supported by Swift.
  // This enum is used in diagnostics. If you add a case here, the diagnostics
  // must be updated as well.
  enum class Ownership : uint8_t {
    /// \brief a strong reference (the default semantics)
    Strong,
  
    /// \brief a 'weak' reference
    Weak,
  
    /// \brief an 'unowned' reference
    Unowned,
  
    /// \brief an 'unowned(unsafe)' reference
    Unmanaged,
  };
    
  } // end namespace swift
  
  #endif
  