Some suggested improvements (#16)

This PR contains the work done to make some overall improvements to the library:
* Fixed code duplication from supporting multiple Swift version in the `AmiiboLiveClient` client;
* Improved the error handling from the client's calls in the `AmiiboLiveClient` client;
* Conformed to `AmiiboLiveClient` and the filter types to the `Sendable` protocol;
* Added the "transport" argument to the initializer of the `AmiiboLiveClient` client;
* Updated the `DocC` library documentation.

Reviewed-on: #16
Co-authored-by: Javier Cicchelli <javier@rock-n-code.com>
Co-committed-by: Javier Cicchelli <javier@rock-n-code.com>
This commit was merged in pull request #16.
This commit is contained in:
javier authored and Javier Cicchelli committed 2025-10-02 01:51:16 +00:00
1 parent 463d15975c
commit c303e1f8f3
124 files changed
+375 -500

No files matched your search

+1 -1
View File
@@ -1 +1 @@
{"includedArchiveIdentifiers":["AmiiboService"],"interfaceLanguages":{"swift":[{"children":[{"title":"Service","type":"groupMarker"},{"children":[{"title":"Initializers","type":"groupMarker"},{"path":"\/documentation\/amiiboservice\/amiiboservice\/init(client:)","title":"init(client: some AmiiboClient)","type":"init"},{"title":"Instance Methods","type":"groupMarker"},{"path":"\/documentation\/amiiboservice\/amiiboservice\/getamiiboseries(_:)","title":"func getAmiiboSeries(AmiiboSeriesFilter) async throws -> [AmiiboSeries]","type":"method"},{"path":"\/documentation\/amiiboservice\/amiiboservice\/getamiibotypes(_:)","title":"func getAmiiboTypes(AmiiboTypeFilter) async throws -> [AmiiboType]","type":"method"},{"path":"\/documentation\/amiiboservice\/amiiboservice\/getamiibos(_:)","title":"func getAmiibos(AmiiboFilter) async throws -> [Amiibo]","type":"method"},{"path":"\/documentation\/amiiboservice\/amiiboservice\/getgamecharacters(_:)","title":"func getGameCharacters(GameCharacterFilter) async throws -> [GameCharacter]","type":"method"},{"path":"\/documentation\/amiiboservice\/amiiboservice\/getgameseries(_:)","title":"func getGameSeries(GameSeriesFilter) async throws -> [GameSeries]","type":"method"},{"path":"\/documentation\/amiiboservice\/amiiboservice\/getlastupdated()","title":"func getLastUpdated() async throws -> Date","type":"method"}],"path":"\/documentation\/amiiboservice\/amiiboservice","title":"AmiiboService","type":"struct"},{"title":"Clients","type":"groupMarker"},{"children":[{"title":"Instance Methods","type":"groupMarker"},{"path":"\/documentation\/amiiboservice\/amiiboclient\/getamiiboseries(by:)","title":"func getAmiiboSeries(by: AmiiboSeriesFilter) async throws -> [AmiiboSeries]","type":"method"},{"path":"\/documentation\/amiiboservice\/amiiboclient\/getamiibotypes(by:)","title":"func getAmiiboTypes(by: AmiiboTypeFilter) async throws -> [AmiiboType]","type":"method"},{"path":"\/documentation\/amiiboservice\/amiiboclient\/getamiibos(by:)","title":"func getAmiibos(by: AmiiboFilter) async throws -> [Amiibo]","type":"method"},{"path":"\/documentation\/amiiboservice\/amiiboclient\/getgamecharacters(by:)","title":"func getGameCharacters(by: GameCharacterFilter) async throws -> [GameCharacter]","type":"method"},{"path":"\/documentation\/amiiboservice\/amiiboclient\/getgameseries(by:)","title":"func getGameSeries(by: GameSeriesFilter) async throws -> [GameSeries]","type":"method"},{"path":"\/documentation\/amiiboservice\/amiiboclient\/getlastupdated()","title":"func getLastUpdated() async throws -> Date","type":"method"}],"path":"\/documentation\/amiiboservice\/amiiboclient","title":"AmiiboClient","type":"protocol"},{"children":[{"title":"Initializers","type":"groupMarker"},{"path":"\/documentation\/amiiboservice\/amiiboliveclient\/init()","title":"init()","type":"init"},{"title":"Default Implementations","type":"groupMarker"},{"children":[{"title":"Instance Methods","type":"groupMarker"},{"path":"\/documentation\/amiiboservice\/amiiboliveclient\/getamiiboseries(by:)","title":"func getAmiiboSeries(by: AmiiboSeriesFilter) async throws -> [AmiiboSeries]","type":"method"},{"path":"\/documentation\/amiiboservice\/amiiboliveclient\/getamiibotypes(by:)","title":"func getAmiiboTypes(by: AmiiboTypeFilter) async throws -> [AmiiboType]","type":"method"},{"path":"\/documentation\/amiiboservice\/amiiboliveclient\/getamiibos(by:)","title":"func getAmiibos(by: AmiiboFilter) async throws -> [Amiibo]","type":"method"},{"path":"\/documentation\/amiiboservice\/amiiboliveclient\/getgamecharacters(by:)","title":"func getGameCharacters(by: GameCharacterFilter) async throws -> [GameCharacter]","type":"method"},{"path":"\/documentation\/amiiboservice\/amiiboliveclient\/getgameseries(by:)","title":"func getGameSeries(by: GameSeriesFilter) async throws -> [GameSeries]","type":"method"},{"path":"\/documentation\/amiiboservice\/amiiboliveclient\/getlastupdated()","title":"func getLastUpdated() async throws -> Date","type":"method"}],"path":"\/documentation\/amiiboservice\/amiiboliveclient\/amiiboclient-implementations","title":"AmiiboClient Implementations","type":"symbol"}],"path":"\/documentation\/amiiboservice\/amiiboliveclient","title":"AmiiboLiveClient","type":"struct"},{"title":"Models","type":"groupMarker"},{"children":[{"title":"Structures","type":"groupMarker"},{"children":[{"title":"Instance Properties","type":"groupMarker"},{"path":"\/documentation\/amiiboservice\/amiibo\/game\/identifiers","title":"let identifiers: [String]","type":"property"},{"path":"\/documentation\/amiiboservice\/amiibo\/game\/name","title":"let name: String","type":"property"},{"path":"\/documentation\/amiiboservice\/amiibo\/game\/usages","title":"let usages: [Amiibo.Usage]?","type":"property"}],"path":"\/documentation\/amiiboservice\/amiibo\/game","title":"Amiibo.Game","type":"struct"},{"children":[{"title":"Instance Properties","type":"groupMarker"},{"path":"\/documentation\/amiiboservice\/amiibo\/platform-swift.struct\/switch","title":Line truncated
{"includedArchiveIdentifiers":["AmiiboService"],"interfaceLanguages":{"swift":[{"children":[{"title":"Service","type":"groupMarker"},{"children":[{"title":"Initializers","type":"groupMarker"},{"path":"\/documentation\/amiiboservice\/amiiboservice\/init(client:)","title":"init(client: some AmiiboClient)","type":"init"},{"title":"Instance Methods","type":"groupMarker"},{"path":"\/documentation\/amiiboservice\/amiiboservice\/getamiiboseries(_:)","title":"func getAmiiboSeries(AmiiboSeriesFilter) async throws -> [AmiiboSeries]","type":"method"},{"path":"\/documentation\/amiiboservice\/amiiboservice\/getamiibotypes(_:)","title":"func getAmiiboTypes(AmiiboTypeFilter) async throws -> [AmiiboType]","type":"method"},{"path":"\/documentation\/amiiboservice\/amiiboservice\/getamiibos(_:)","title":"func getAmiibos(AmiiboFilter) async throws -> [Amiibo]","type":"method"},{"path":"\/documentation\/amiiboservice\/amiiboservice\/getgamecharacters(_:)","title":"func getGameCharacters(GameCharacterFilter) async throws -> [GameCharacter]","type":"method"},{"path":"\/documentation\/amiiboservice\/amiiboservice\/getgameseries(_:)","title":"func getGameSeries(GameSeriesFilter) async throws -> [GameSeries]","type":"method"},{"path":"\/documentation\/amiiboservice\/amiiboservice\/getlastupdated()","title":"func getLastUpdated() async throws -> Date","type":"method"}],"path":"\/documentation\/amiiboservice\/amiiboservice","title":"AmiiboService","type":"struct"},{"title":"Clients","type":"groupMarker"},{"children":[{"title":"Instance Methods","type":"groupMarker"},{"path":"\/documentation\/amiiboservice\/amiiboclient\/getamiiboseries(by:)","title":"func getAmiiboSeries(by: AmiiboSeriesFilter) async throws -> [AmiiboSeries]","type":"method"},{"path":"\/documentation\/amiiboservice\/amiiboclient\/getamiibotypes(by:)","title":"func getAmiiboTypes(by: AmiiboTypeFilter) async throws -> [AmiiboType]","type":"method"},{"path":"\/documentation\/amiiboservice\/amiiboclient\/getamiibos(by:)","title":"func getAmiibos(by: AmiiboFilter) async throws -> [Amiibo]","type":"method"},{"path":"\/documentation\/amiiboservice\/amiiboclient\/getgamecharacters(by:)","title":"func getGameCharacters(by: GameCharacterFilter) async throws -> [GameCharacter]","type":"method"},{"path":"\/documentation\/amiiboservice\/amiiboclient\/getgameseries(by:)","title":"func getGameSeries(by: GameSeriesFilter) async throws -> [GameSeries]","type":"method"},{"path":"\/documentation\/amiiboservice\/amiiboclient\/getlastupdated()","title":"func getLastUpdated() async throws -> Date","type":"method"}],"path":"\/documentation\/amiiboservice\/amiiboclient","title":"AmiiboClient","type":"protocol"},{"children":[{"title":"Initializers","type":"groupMarker"},{"path":"\/documentation\/amiiboservice\/amiiboliveclient\/init(transport:)","title":"init(transport: any ClientTransport)","type":"init"},{"title":"Default Implementations","type":"groupMarker"},{"children":[{"title":"Instance Methods","type":"groupMarker"},{"path":"\/documentation\/amiiboservice\/amiiboliveclient\/getamiiboseries(by:)","title":"func getAmiiboSeries(by: AmiiboSeriesFilter) async throws -> [AmiiboSeries]","type":"method"},{"path":"\/documentation\/amiiboservice\/amiiboliveclient\/getamiibotypes(by:)","title":"func getAmiiboTypes(by: AmiiboTypeFilter) async throws -> [AmiiboType]","type":"method"},{"path":"\/documentation\/amiiboservice\/amiiboliveclient\/getamiibos(by:)","title":"func getAmiibos(by: AmiiboFilter) async throws -> [Amiibo]","type":"method"},{"path":"\/documentation\/amiiboservice\/amiiboliveclient\/getgamecharacters(by:)","title":"func getGameCharacters(by: GameCharacterFilter) async throws -> [GameCharacter]","type":"method"},{"path":"\/documentation\/amiiboservice\/amiiboliveclient\/getgameseries(by:)","title":"func getGameSeries(by: GameSeriesFilter) async throws -> [GameSeries]","type":"method"},{"path":"\/documentation\/amiiboservice\/amiiboliveclient\/getlastupdated()","title":"func getLastUpdated() async throws -> Date","type":"method"}],"path":"\/documentation\/amiiboservice\/amiiboliveclient\/amiiboclient-implementations","title":"AmiiboClient Implementations","type":"symbol"}],"path":"\/documentation\/amiiboservice\/amiiboliveclient","title":"AmiiboLiveClient","type":"struct"},{"title":"Models","type":"groupMarker"},{"children":[{"title":"Structures","type":"groupMarker"},{"children":[{"title":"Instance Properties","type":"groupMarker"},{"path":"\/documentation\/amiiboservice\/amiibo\/game\/identifiers","title":"let identifiers: [String]","type":"property"},{"path":"\/documentation\/amiiboservice\/amiibo\/game\/name","title":"let name: String","type":"property"},{"path":"\/documentation\/amiiboservice\/amiibo\/game\/usages","title":"let usages: [Amiibo.Usage]?","type":"property"}],"path":"\/documentation\/amiiboservice\/amiibo\/game","title":"Amiibo.Game","type":"struct"},{"children":[{"title":"Instance Properties","type":"groupMarker"},{"path":"\/documentation\/amiiboservice\/amiibo\Line truncated