mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
* Remove a bunch of Default(Bidirectional|RandomAccess)Indices usage from stdlib and test * Remove some DefaultRandomAccessIndices and IndexDistance usage from Foundation * Remove no-longer-used internal type in Existentials.swift * Get rid of indicesForTraversal
51 lines
1.7 KiB
Python
51 lines
1.7 KiB
Python
# ===--- gyb_stdlib_support.py -----------------------*- coding: utf-8 -*-===//
|
|
#
|
|
# This source file is part of the Swift.org open source project
|
|
#
|
|
# Copyright (c) 2014 - 2017 Apple Inc. and the Swift project authors
|
|
# Licensed under Apache License v2.0 with Runtime Library Exception
|
|
#
|
|
# See https://swift.org/LICENSE.txt for license information
|
|
# See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
|
|
|
|
TRAVERSALS = ['Forward', 'Bidirectional', 'RandomAccess']
|
|
|
|
|
|
def collectionForTraversal(traversal): # noqa (N802 function name should be lowercase)
|
|
if traversal == 'Forward':
|
|
return 'Collection'
|
|
elif traversal == 'Bidirectional':
|
|
return 'BidirectionalCollection'
|
|
elif traversal == 'RandomAccess':
|
|
return 'RandomAccessCollection'
|
|
else:
|
|
raise ValueError("Unknown traversal %r" % traversal)
|
|
|
|
|
|
def collectionTypeName(traversal, mutable, rangeReplaceable): # noqa (N802)
|
|
name = collectionForTraversal(traversal)
|
|
if rangeReplaceable:
|
|
name = 'RangeReplaceable' + name
|
|
if mutable:
|
|
name = 'Mutable' + name
|
|
return name
|
|
|
|
|
|
def protocolsForCollectionFeatures(traversal, mutable, rangeReplaceable): # noqa (N802)
|
|
protocols = [collectionForTraversal(traversal)]
|
|
if mutable:
|
|
protocols.append('MutableCollection')
|
|
if rangeReplaceable:
|
|
protocols.append('RangeReplaceableCollection')
|
|
return protocols
|
|
|
|
def documentationNameForTraversal(traversal): # noqa (N802)
|
|
if traversal == 'Forward':
|
|
return 'collection'
|
|
elif traversal == 'Bidirectional':
|
|
return 'bidirectional collection'
|
|
elif traversal == 'RandomAccess':
|
|
return 'random-access collection'
|
|
else:
|
|
raise ValueError("Unknown traversal %r" % traversal)
|