[swift-users] Protocols, `mutating` and Value vs Reference Types.

Dave Abrahams dabrahams at apple.com
Fri Apr 29 19:28:23 CDT 2016

on Fri Apr 29 2016, Hooman Mehr <swift-users-AT-swift.org> wrote:

> Hi,
> I am designing APIs that need to support both reference (class/object) and value
> types. I am running into restrictions of `mutating` keyword in my protocols and
> this is causing a lot of duplication of code. In order to understand what I mean
> please take a look at this gist. 
> As you see, I have pairs of almost identical declarations: KeyValueStore vs
> KeyValueStoreObject, and AnyDictionaryStore vs AnyDictionaryStoreObject. This
> keeps rapidly growing as I am designing my APIs. Is there any sane way around
> this?

protocol KeyValueStoreObject : class, KeyValueStore {}
protocol AnyDictionaryStoreObject : class, AnyDictionaryStore {}

would probably work for you.



More information about the swift-users mailing list