protocol _BidirectionalIndexType This protocol is an implementation detail of BidirectionalIndexType; do not use it directly. Its requirements are inherited by BidirectionalIndexType and thus must be satisfied by types conforming to that protocol. Inheritance Equatable, _ForwardIndexType, _Incrementable View Protocol Hierarchy → Associated Types Distance : _SignedIntegerType = Int A type that can represent the number of steps between pairs of Self values where one value is reachable from the other. Reachability is defined by the ability to produce one value from the other via zero or more applications of successor. _DisabledRangeIndex = _DisabledRangeIndex_ A type that can represent the number of steps between pairs of Self values where one value is reachable from the other. Reachability is defined by the ability to produce one value from the other via zero or more applications of successor. Import import Swift Instance Methods func ==(_:rhs:) Required Return true if lhs is equal to rhs. Equality implies substitutability. When x == y, x and y are interchangeable in any code that only depends on their values. Class instance identity as distinguished by triple-equals === is notably not part of an instance's value. Exposing other non-value aspects of Equatable types is discouraged, and any that are exposed should be explicitly pointed out in documentation. Equality is an equivalence relation x == x is true x == y implies y == x x == y and y == z implies x == z Inequality is the inverse of equality, i.e. !(x == y) iff x != y Declaration func ==(lhs: Self, rhs: Self) -> Bool Declared In Equatable func predecessor() Required Return the previous consecutive value in a discrete sequence. If self has a well-defined successor, self.successor().predecessor() == self. If self has a well-defined predecessor, self.predecessor().successor() == self. Requires: self has a well-defined predecessor. Declaration func predecessor() -> Self func successor() Required Return the next consecutive value in a discrete sequence of Self values Requires: self has a well-defined successor. Declaration func successor() -> Self Declared In _Incrementable