[swift-users] How to rewrite this snippet without `existentials`?
Adrian Zubarev
adrian.zubarev at devandartist.com
Fri Dec 2 11:05:39 CST 2016
For anyone interested. The correct idea should go into this direction one day:
public class Router<B> {
open protocol Connection<T> : class {
var router: Router<T> { get set }
func performWith(_ value: T)
}
var _connections: [Connection<B>] = []
public typealias Connections = Any<Collection> where Collection.Index == Int, Collection.Iterator.Element == B
// Immutable view without `append` etc.
public connections: Connections { return self._connections }
public func register(_ connection: Connection<B>) { … }
public func performWith(_ value: B) {
self._connections.forEach { $0.performWith(value) }
}
}
The main idea is to link different nodes (class instances) and call a function on the other end with a specific type parameter. Enums with associated types would come really handy here.
--
Adrian Zubarev
Sent with Airmail
Am 2. Dezember 2016 um 17:35:25, Tino Heth (2th at gmx.de) schrieb:
Thanks, that works party as needed but I just realize this main idea here is exactly an example where one would need generic protocols
That's right — and I guess they rank quite hight on the general evolution-wishlist ;-)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-users/attachments/20161202/a33ab2b1/attachment.html>
More information about the swift-users
mailing list