Using typealiases to reduce the length of method signatures
One thing that I find really useful in Swift is to use typealiases to reduce the length of method signatures in generic types:
public class PathFinder<Object: PathFinderObject> {
public typealias Map = Object.Map
public typealias Node = Map.Node
public typealias Path = PathFinderPath<Object>
public static func possiblePaths(
for object: Object,
at rootNode: Node,
on map: Map
) -> Path.Sequence {
return .init(object: object, rootNode: rootNode, map: map)
}
}