Skip to content

How to use Changeset in protocols? #34

@pepasflo

Description

@pepasflo

I can't figure out how to make the compiler happy when trying to express something like this:

public protocol ChangesetApplying: class {
    associatedtype T
    func apply(changeset: Changeset<T>)
}

The above will complain that Type 'Self.T' does not conform to protocol 'Collection'.

Changing it to associatedtype T: Collection yields a different error: Type 'Self.T.Iterator.Element' does not conform to protocol 'Equatable'.

Changing it to associatedtype T: Collection where T.Iterator.Element: Equatable, T.IndexDistance == Int yields the error 'where' clause cannot be attached to an associated type declaration, which appears to be the subject of SE-0142.

Any ideas?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions