Hi Nikita,

See if the below implementation fits your needs:

protocol P1 {}

protocol P2 : P1 where T : P1 {
    
    associatedtype T
    
    var input : T { get }
}

struct S1 : P1 {}

struct S2 : P2 {
    
    typealias T = S1
    
    var input: T
}

Regards,
Muthu


> On 30 Aug 2017, at 1:25 AM, Nikita Leonov via swift-users 
> <swift-users@swift.org> wrote:
> 
> Hello everyone, 
> 
> I am looking a way to express something similar to the following code in 
> Swift terms:
> protocol AnyViewModelInput {}
> protocol AnyViewModel<ViewModelInput>: ViewModelInput where ViewModelInput: 
> AnyViewModelInput {
>     var input: ViewModelInput { get }
> }
> 
> Is it possible in current Swift? Will it be possible if generic manifesto 
> will be implemented in full? Also if you know how to express a similar idea 
> in any other language, I would love to see examples. How does such construct 
> is named in other languages?
> 
> Thank in advance,
> Nikita
> _______________________________________________
> 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