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:
2025-10-02 01:51:16 +00:00
committed by Javier Cicchelli
parent 463d15975c
commit c303e1f8f3
124 changed files with 375 additions and 500 deletions
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
{"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboLiveClient"]]},"kind":"symbol","variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiiboliveclient\/init()"]}],"abstract":[{"text":"Initializes this client.","type":"text"}],"schemaVersion":{"major":0,"minor":3,"patch":0},"metadata":{"fragments":[{"text":"init","kind":"identifier"},{"text":"()","kind":"text"}],"modules":[{"name":"AmiiboService"}],"role":"symbol","title":"init()","roleHeading":"Initializer","externalID":"s:13AmiiboService0A10LiveClientVACycfc","symbolKind":"init"},"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboLiveClient\/init()","interfaceLanguage":"swift"},"primaryContentSections":[{"declarations":[{"tokens":[{"text":"init","kind":"keyword"},{"text":"()","kind":"text"}],"platforms":["macOS"],"languages":["swift"]}],"kind":"declarations"}],"sections":[],"references":{"doc://AmiiboService/documentation/AmiiboService":{"title":"AmiiboService","abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"role":"collection","kind":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","type":"topic","url":"\/documentation\/amiiboservice"},"doc://AmiiboService/documentation/AmiiboService/AmiiboLiveClient":{"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboLiveClient","title":"AmiiboLiveClient","url":"\/documentation\/amiiboservice\/amiiboliveclient","role":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"AmiiboLiveClient","kind":"identifier"}],"abstract":[{"type":"text","text":"A type that implements a live client to the online service."}],"navigatorTitle":[{"text":"AmiiboLiveClient","kind":"identifier"}],"type":"topic","kind":"symbol"},"doc://AmiiboService/documentation/AmiiboService/AmiiboLiveClient/init()":{"type":"topic","title":"init()","abstract":[{"type":"text","text":"Initializes this client."}],"role":"symbol","kind":"symbol","url":"\/documentation\/amiiboservice\/amiiboliveclient\/init()","fragments":[{"text":"init","kind":"identifier"},{"text":"()","kind":"text"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboLiveClient\/init()"}}}
@@ -0,0 +1 @@
{"abstract":[{"text":"Initializes this client.","type":"text"}],"schemaVersion":{"patch":0,"major":0,"minor":3},"kind":"symbol","variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiiboliveclient\/init(transport:)"]}],"primaryContentSections":[{"declarations":[{"platforms":["macOS"],"languages":["swift"],"tokens":[{"kind":"keyword","text":"init"},{"kind":"text","text":"("},{"text":"transport","kind":"externalParam"},{"kind":"text","text":": any "},{"kind":"typeIdentifier","text":"ClientTransport","preciseIdentifier":"s:14OpenAPIRuntime15ClientTransportP"},{"text":" = URLSessionTransport())","kind":"text"}]}],"kind":"declarations"},{"kind":"parameters","parameters":[{"content":[{"inlineContent":[{"type":"text","text":"A transport that performs HTTP operations."}],"type":"paragraph"}],"name":"transport"}]}],"sections":[],"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboLiveClient\/init(transport:)"},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboLiveClient"]]},"metadata":{"roleHeading":"Initializer","externalID":"s:13AmiiboService0A10LiveClientV9transportAC14OpenAPIRuntime0D9Transport_p_tcfc","symbolKind":"init","fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"kind":"externalParam","text":"transport"},{"text":": any ","kind":"text"},{"kind":"typeIdentifier","text":"ClientTransport","preciseIdentifier":"s:14OpenAPIRuntime15ClientTransportP"},{"kind":"text","text":")"}],"role":"symbol","modules":[{"name":"AmiiboService"}],"title":"init(transport:)"},"references":{"doc://AmiiboService/documentation/AmiiboService/AmiiboLiveClient/init(transport:)":{"kind":"symbol","title":"init(transport:)","type":"topic","abstract":[{"type":"text","text":"Initializes this client."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboLiveClient\/init(transport:)","url":"\/documentation\/amiiboservice\/amiiboliveclient\/init(transport:)","role":"symbol","fragments":[{"kind":"identifier","text":"init"},{"kind":"text","text":"("},{"text":"transport","kind":"externalParam"},{"text":": any ","kind":"text"},{"preciseIdentifier":"s:14OpenAPIRuntime15ClientTransportP","kind":"typeIdentifier","text":"ClientTransport"},{"kind":"text","text":")"}]},"doc://AmiiboService/documentation/AmiiboService/AmiiboLiveClient":{"kind":"symbol","title":"AmiiboLiveClient","type":"topic","abstract":[{"type":"text","text":"A type that implements a live client to the online service."}],"navigatorTitle":[{"kind":"identifier","text":"AmiiboLiveClient"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboLiveClient","url":"\/documentation\/amiiboservice\/amiiboliveclient","role":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"kind":"text","text":" "},{"text":"AmiiboLiveClient","kind":"identifier"}]},"doc://AmiiboService/documentation/AmiiboService":{"url":"\/documentation\/amiiboservice","type":"topic","abstract":[{"type":"text","text":"A library that provides everything the developer needs to interacts with the "},{"inlineContent":[{"type":"text","text":"Amiibo API"}],"type":"strong"},{"type":"text","text":" backend service."}],"kind":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","title":"AmiiboService","role":"collection"}}}