LiveUI / Awesome

FontAwesome 6 Swift & SwiftUI implementation for iOS, tvOS & macOS
MIT License
97 stars 27 forks source link

With the new architecture, you can't have a variable for an Amazing instance #33

Open ipodishima opened 5 years ago

ipodishima commented 5 years ago

Hi there!

Thanks for the library, very helpful for my project! But... Given the update on Amazing (public protocol Amazing: RawRepresentable, CaseIterable where RawValue == String) we could write

var icon: Amazing {
        switch self {
        case .conversations:
            return AwesomePro.Regular.comment
        case .statistics:
            return AwesomePro.Solid.chartPie
        }
    }

Now we can't :( Protocol 'Amazing' can only be used as a generic constraint because it has Self or associated type requirements

padarom commented 5 years ago

@rafiki270 @ghowen Any ideas? In extensions we use the generic <AmazingType: Amazing>, but as far as I know we can't do that with variable types, plus it would hurt readability for the API consumer.

rafiki270 commented 5 years ago

Well, as a quick hack I would suggest you return another type for now ... like image or attributed string. I’ll try to check some options about this asap