Thank you very much for your response. I made the change in the gist 
<https://gist.github.com/hooman/2b74d9756976a43330c1acfcfba699f3>. This takes 
me back to the same error that forced my into duplication path:

“Cannot assign through subscript: ‘self’ is immutable” for the object case.

The gist <https://gist.github.com/hooman/2b74d9756976a43330c1acfcfba699f3> is 
self contained if you want to compile it yourself.

Is this some kind of bug or the expected behavior?

> On Apr 29, 2016, at 5:28 PM, Dave Abrahams via swift-users 
> <swift-users@swift.org> wrote:
> 
> 
> 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.
> 
> HTH,
> 
> -- 
> Dave
> 
> _______________________________________________
> swift-users mailing list
> swift-users@swift.org
> https://lists.swift.org/mailman/listinfo/swift-users

_______________________________________________
swift-users mailing list
swift-users@swift.org
https://lists.swift.org/mailman/listinfo/swift-users

Reply via email to