Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0c41e5d4ce | ||
|
|
1488aa151e | ||
|
|
2442ada4b6 | ||
|
|
b8c0878ca3 | ||
|
|
61695af072 | ||
|
|
7e7e194abc | ||
|
|
2b01ec14bf | ||
|
|
fae4b44698 | ||
|
|
0d9c9e22a4 |
@@ -2,7 +2,7 @@
|
|||||||
##
|
##
|
||||||
## This source file is part of the Amiibo Service open source project
|
## This source file is part of the Amiibo Service open source project
|
||||||
##
|
##
|
||||||
## Copyright (c) 2025 Röck+Cöde VoF. and the Amiibo Service project authors
|
## Copyright (c) 2026 Röck+Cöde VoF. and the Amiibo Service project authors
|
||||||
## Licensed under Apache license v2.0
|
## Licensed under Apache license v2.0
|
||||||
##
|
##
|
||||||
## See LICENSE for license information
|
## See LICENSE for license information
|
||||||
|
|||||||
+1
-1
@@ -2,7 +2,7 @@
|
|||||||
##
|
##
|
||||||
## This source file is part of the Amiibo Service open source project
|
## This source file is part of the Amiibo Service open source project
|
||||||
##
|
##
|
||||||
## Copyright (c) 2025 Röck+Cöde VoF. and the Amiibo Service project authors
|
## Copyright (c) 2026 Röck+Cöde VoF. and the Amiibo Service project authors
|
||||||
## Licensed under Apache license v2.0
|
## Licensed under Apache license v2.0
|
||||||
##
|
##
|
||||||
## See LICENSE for license information
|
## See LICENSE for license information
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
##
|
##
|
||||||
## This source file is part of the Amiibo Service open source project
|
## This source file is part of the Amiibo Service open source project
|
||||||
##
|
##
|
||||||
## Copyright (c) 2025 Röck+Cöde VoF. and the Amiibo Service project authors
|
## Copyright (c) 2026 Röck+Cöde VoF. and the Amiibo Service project authors
|
||||||
## Licensed under Apache license v2.0
|
## Licensed under Apache license v2.0
|
||||||
##
|
##
|
||||||
## See LICENSE for license information
|
## See LICENSE for license information
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
##
|
##
|
||||||
## This source file is part of the Amiibo Service open source project
|
## This source file is part of the Amiibo Service open source project
|
||||||
##
|
##
|
||||||
## Copyright (c) 2025 Röck+Cöde VoF. and the Amiibo Service project authors
|
## Copyright (c) 2026 Röck+Cöde VoF. and the Amiibo Service project authors
|
||||||
## Licensed under Apache license v2.0
|
## Licensed under Apache license v2.0
|
||||||
##
|
##
|
||||||
## See LICENSE for license information
|
## See LICENSE for license information
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ Please visit the Amiibo Service web site for more information:
|
|||||||
|
|
||||||
* https://github.com/rock-n-code/amiibo-service
|
* https://github.com/rock-n-code/amiibo-service
|
||||||
|
|
||||||
Copyright 2025 Röck+Cöde VoF
|
Copyright 2026 Röck+Cöde VoF
|
||||||
|
|
||||||
The Amiibo Service Project licenses this file to you under the Apache License,
|
The Amiibo Service Project licenses this file to you under the Apache License,
|
||||||
version 2.0 (the "License"); you may not use this file except in compliance
|
version 2.0 (the "License"); you may not use this file except in compliance
|
||||||
@@ -17,4 +17,4 @@ Unless required by applicable law or agreed to in writing, software
|
|||||||
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
License for the specific language governing permissions and limitations
|
License for the specific language governing permissions and limitations
|
||||||
under the License.
|
under the License.
|
||||||
|
|||||||
+3
-3
@@ -1,10 +1,10 @@
|
|||||||
// swift-tools-version: 5.10
|
// swift-tools-version: 6.2
|
||||||
|
|
||||||
// ===----------------------------------------------------------------------===
|
// ===----------------------------------------------------------------------===
|
||||||
//
|
//
|
||||||
// This source file is part of the Amiibo Service open source project
|
// This source file is part of the Amiibo Service open source project
|
||||||
//
|
//
|
||||||
// Copyright (c) 2025 Röck+Cöde VoF. and the Amiibo Service project authors
|
// Copyright (c) 2026 Röck+Cöde VoF. and the Amiibo Service project authors
|
||||||
// Licensed under Apache license v2.0
|
// Licensed under Apache license v2.0
|
||||||
//
|
//
|
||||||
// See LICENSE for license information
|
// See LICENSE for license information
|
||||||
@@ -32,7 +32,7 @@ let package = Package(
|
|||||||
)
|
)
|
||||||
],
|
],
|
||||||
dependencies: [
|
dependencies: [
|
||||||
.package(url: "https://github.com/apple/swift-openapi-generator.git", from: "1.3.0"),
|
.package(url: "https://github.com/apple/swift-openapi-generator.git", exact: "1.11.0"),
|
||||||
.package(url: "https://github.com/apple/swift-openapi-runtime", from: "1.5.0"),
|
.package(url: "https://github.com/apple/swift-openapi-runtime", from: "1.5.0"),
|
||||||
.package(url: "https://github.com/apple/swift-openapi-urlsession", from: "1.0.2"),
|
.package(url: "https://github.com/apple/swift-openapi-urlsession", from: "1.0.2"),
|
||||||
.package(url: "https://github.com/swiftlang/swift-docc-plugin", from: "1.1.0"),
|
.package(url: "https://github.com/swiftlang/swift-docc-plugin", from: "1.1.0"),
|
||||||
|
|||||||
@@ -3,17 +3,17 @@
|
|||||||
|
|
||||||
# Amiibo Service
|
# Amiibo Service
|
||||||
|
|
||||||
A library written entirely with [Swift](https://www.swift.org) that provides everything the developer needs to interacts with the [Amiibo API](https://www.amiiboapi.com) backend service.
|
A library written entirely with [Swift](https://www.swift.org) that provides everything the developer needs to interact with the [Amiibo API](https://www.amiiboapi.org) backend service.
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
To use this library, then it is mandatory to add it as a dependency in the `Package.swift` file:
|
To use this library, add it as a dependency in the `Package.swift` file:
|
||||||
|
|
||||||
```swift
|
```swift
|
||||||
let package = Package(
|
let package = Package(
|
||||||
// name, platforms, products, etc.
|
// name, platforms, products, etc.
|
||||||
dependencies: [
|
dependencies: [
|
||||||
.package(url: "https://github.com/rock-n-code/amiibo-service", from: "1.2.0"),
|
.package(url: "https://github.com/rock-n-code/amiibo-service", from: "1.4.2"),
|
||||||
// other dependencies
|
// other dependencies
|
||||||
],
|
],
|
||||||
targets: [
|
targets: [
|
||||||
@@ -28,10 +28,92 @@ let package = Package(
|
|||||||
)
|
)
|
||||||
```
|
```
|
||||||
|
|
||||||
It is also possible to use this library with your app in Xcode, then add it as a dependency in your Xcode project.
|
It is also possible to use this library with your app in Xcode by adding it as a dependency in your Xcode project.
|
||||||
|
|
||||||
> important: Swift 5.10 or higher is required in order to build this library.
|
> [!IMPORTANT]
|
||||||
|
> Swift 6.2 or higher is required in order to build this library.
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
```swift
|
||||||
|
import AmiiboService
|
||||||
|
|
||||||
|
let service = AmiiboService()
|
||||||
|
|
||||||
|
// Fetch all amiibos
|
||||||
|
let amiibos = try await service.getAmiibos()
|
||||||
|
|
||||||
|
// Fetch amiibos filtered by name
|
||||||
|
let zeldaAmiibos = try await service.getAmiibos(.init(name: "zelda"))
|
||||||
|
|
||||||
|
// Fetch amiibo series, types, game characters, and game series
|
||||||
|
let series = try await service.getAmiiboSeries()
|
||||||
|
let types = try await service.getAmiiboTypes()
|
||||||
|
let characters = try await service.getGameCharacters()
|
||||||
|
let gameSeries = try await service.getGameSeries()
|
||||||
|
|
||||||
|
// Fetch the last updated timestamp
|
||||||
|
let lastUpdated = try await service.getLastUpdated()
|
||||||
|
```
|
||||||
|
|
||||||
|
## Caching
|
||||||
|
|
||||||
|
The [Amiibo API](https://www.amiiboapi.org) recommends that consumers who call the API regularly implement caching on their systems. Pass a custom `URLSessionTransport` with a cache-configured `URLSession` to `AmiiboLiveClient`:
|
||||||
|
|
||||||
|
```swift
|
||||||
|
import OpenAPIURLSession
|
||||||
|
|
||||||
|
let configuration = URLSessionConfiguration.default
|
||||||
|
|
||||||
|
configuration.urlCache = URLCache(
|
||||||
|
memoryCapacity: 5_000_000,
|
||||||
|
diskCapacity: 50_000_000
|
||||||
|
)
|
||||||
|
|
||||||
|
let transport = URLSessionTransport(
|
||||||
|
configuration: .init(
|
||||||
|
session: URLSession(configuration: configuration)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
let service = AmiiboService(
|
||||||
|
client: AmiiboLiveClient(transport: transport)
|
||||||
|
)
|
||||||
|
```
|
||||||
|
|
||||||
|
## Testing
|
||||||
|
|
||||||
|
The `AmiiboClient` protocol enables creating custom mock clients for unit testing without network calls. Conform to `AmiiboClient` and inject it into `AmiiboService` via its `init(client:)` initializer. Since `AmiiboClient` refines `Sendable`, conforming types must be safe to share across concurrency domains:
|
||||||
|
|
||||||
|
```swift
|
||||||
|
import AmiiboService
|
||||||
|
|
||||||
|
struct MyMockClient: AmiiboClient {
|
||||||
|
var error: AmiiboServiceError?
|
||||||
|
|
||||||
|
func getAmiibos(
|
||||||
|
by filter: AmiiboFilter
|
||||||
|
) async throws(AmiiboServiceError) -> [Amiibo] {
|
||||||
|
if let error { throw error }
|
||||||
|
return []
|
||||||
|
}
|
||||||
|
|
||||||
|
// Implement remaining protocol requirements...
|
||||||
|
}
|
||||||
|
|
||||||
|
let service = AmiiboService(client: MyMockClient())
|
||||||
|
```
|
||||||
|
|
||||||
|
### Running the test suite
|
||||||
|
|
||||||
|
The unit tests based on a mock client run offline by default. The tests against the live service are skipped unless the `AMIIBO_LIVE_TESTS` environment variable is set to `1`, either in the environment when testing from the command line:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
AMIIBO_LIVE_TESTS=1 swift test
|
||||||
|
```
|
||||||
|
|
||||||
|
or in the `Test` action of the scheme when testing from Xcode.
|
||||||
|
|
||||||
## Documentation
|
## Documentation
|
||||||
|
|
||||||
Please refer to the [online documentation](https://rock-n-code.github.io/amiibo-service/documentation/amiiboservice/) for further informations about this library.
|
Please refer to the [online documentation](https://rock-n-code.github.io/amiibo-service/documentation/amiiboservice/) for further information about this library.
|
||||||
|
|||||||
@@ -0,0 +1,10 @@
|
|||||||
|
# ``Amiibo``
|
||||||
|
|
||||||
|
## Topics
|
||||||
|
|
||||||
|
### Nested Models
|
||||||
|
|
||||||
|
- ``Amiibo/Game``
|
||||||
|
- ``Amiibo/Platform``
|
||||||
|
- ``Amiibo/Release``
|
||||||
|
- ``Amiibo/Usage``
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
# ``AmiiboService/AmiiboService``
|
||||||
|
|
||||||
|
## Topics
|
||||||
|
|
||||||
|
### Initializers
|
||||||
|
|
||||||
|
- ``AmiiboService/AmiiboService/init(client:)``
|
||||||
|
|
||||||
|
### Amiibo endpoints
|
||||||
|
|
||||||
|
- ``AmiiboService/AmiiboService/getAmiibos(_:)``
|
||||||
|
- ``AmiiboService/AmiiboService/getAmiiboSeries(_:)``
|
||||||
|
- ``AmiiboService/AmiiboService/getAmiiboTypes(_:)``
|
||||||
|
|
||||||
|
### Game endpoints
|
||||||
|
|
||||||
|
- ``AmiiboService/AmiiboService/getGameCharacters(_:)``
|
||||||
|
- ``AmiiboService/AmiiboService/getGameSeries(_:)``
|
||||||
|
|
||||||
|
### System endpoints
|
||||||
|
|
||||||
|
- ``AmiiboService/AmiiboService/getLastUpdated()``
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
# ``AmiiboServiceError``
|
||||||
|
|
||||||
|
## Topics
|
||||||
|
|
||||||
|
### Request errors
|
||||||
|
|
||||||
|
- ``AmiiboServiceError/badRequest``
|
||||||
|
- ``AmiiboServiceError/cancelled``
|
||||||
|
|
||||||
|
### Response errors
|
||||||
|
|
||||||
|
- ``AmiiboServiceError/decoding``
|
||||||
|
- ``AmiiboServiceError/notFound``
|
||||||
|
|
||||||
|
### Service errors
|
||||||
|
|
||||||
|
- ``AmiiboServiceError/notAvailable``
|
||||||
|
- ``AmiiboServiceError/undocumented(_:)``
|
||||||
|
- ``AmiiboServiceError/unknown(_:)``
|
||||||
@@ -4,7 +4,7 @@ A library that provides everything the developer needs to interact with the **Am
|
|||||||
|
|
||||||
## Overview
|
## Overview
|
||||||
|
|
||||||
The `amiibo-service` library is a package that allows the developer to interact with the [Amiibo API](https://www.amiiboapi.com) backend service seamlessly, by not only providing the *service* type but also any possible *models*, *filters*, *errors* and *interfaces* types that might be needed during implementation.
|
The `amiibo-service` library is a package that allows the developer to interact with the [Amiibo API](https://www.amiiboapi.org) backend service seamlessly, by not only providing the *service* type but also any possible *models*, *filters*, *errors* and *interfaces* types that might be needed during implementation.
|
||||||
|
|
||||||
## Design
|
## Design
|
||||||
|
|
||||||
@@ -18,7 +18,7 @@ To use the `AmiiboService` library with your package, then add it as a dependenc
|
|||||||
let package = Package(
|
let package = Package(
|
||||||
// name, platforms, products, etc.
|
// name, platforms, products, etc.
|
||||||
dependencies: [
|
dependencies: [
|
||||||
.package(url: "https://github.com/rock-n-code/amiibo-service", from: "1.2.0"),
|
.package(url: "https://github.com/rock-n-code/amiibo-service", from: "2.0.0"),
|
||||||
// other dependencies
|
// other dependencies
|
||||||
],
|
],
|
||||||
targets: [
|
targets: [
|
||||||
@@ -35,7 +35,92 @@ let package = Package(
|
|||||||
|
|
||||||
It is also possible to use the `AmiiboService` library with your app in Xcode, then add it as a dependency in your Xcode project.
|
It is also possible to use the `AmiiboService` library with your app in Xcode, then add it as a dependency in your Xcode project.
|
||||||
|
|
||||||
> important: Swift 5.10 or higher is required in order to compile this library.
|
> important: Swift 6.2 or higher is required in order to compile this library.
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
Create an ``AmiiboService`` instance and call any of its endpoints. Each endpoint accepts an optional filter and, when omitted, returns the full set of results:
|
||||||
|
|
||||||
|
```swift
|
||||||
|
import AmiiboService
|
||||||
|
|
||||||
|
let service = AmiiboService()
|
||||||
|
|
||||||
|
// Fetch all amiibos
|
||||||
|
let amiibos = try await service.getAmiibos()
|
||||||
|
|
||||||
|
// Fetch amiibos filtered by name
|
||||||
|
let zeldaAmiibos = try await service.getAmiibos(.init(name: "zelda"))
|
||||||
|
|
||||||
|
// Fetch amiibo series, types, game characters, and game series
|
||||||
|
let series = try await service.getAmiiboSeries()
|
||||||
|
let types = try await service.getAmiiboTypes()
|
||||||
|
let characters = try await service.getGameCharacters()
|
||||||
|
let gameSeries = try await service.getGameSeries()
|
||||||
|
|
||||||
|
// Fetch the last updated timestamp
|
||||||
|
let lastUpdated = try await service.getLastUpdated()
|
||||||
|
```
|
||||||
|
|
||||||
|
## Caching
|
||||||
|
|
||||||
|
The [Amiibo API](https://www.amiiboapi.org) recommends that consumers who call the API regularly implement caching on their systems. This library does not include a built-in cache, leaving the choice of caching strategy to the consumer. The following examples show two common approaches.
|
||||||
|
|
||||||
|
### URLCache on the transport layer
|
||||||
|
|
||||||
|
Pass a custom `URLSessionTransport` with a cache-configured `URLSession` to ``AmiiboLiveClient``:
|
||||||
|
|
||||||
|
```swift
|
||||||
|
import OpenAPIURLSession
|
||||||
|
|
||||||
|
let configuration = URLSessionConfiguration.default
|
||||||
|
|
||||||
|
configuration.urlCache = URLCache(
|
||||||
|
memoryCapacity: 5_000_000,
|
||||||
|
diskCapacity: 50_000_000
|
||||||
|
)
|
||||||
|
|
||||||
|
let transport = URLSessionTransport(
|
||||||
|
configuration: .init(
|
||||||
|
session: URLSession(configuration: configuration)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
let service = AmiiboService(
|
||||||
|
client: AmiiboLiveClient(transport: transport)
|
||||||
|
)
|
||||||
|
```
|
||||||
|
|
||||||
|
This leverages HTTP cache headers from the server and persists cached responses to disk.
|
||||||
|
|
||||||
|
### Application-level caching
|
||||||
|
|
||||||
|
Alternatively, cache the results returned by ``AmiiboService`` directly in your application using any storage mechanism that fits your needs, such as an in-memory dictionary, a database, or a file-based store.
|
||||||
|
|
||||||
|
## Testing
|
||||||
|
|
||||||
|
The ``AmiiboClient`` protocol enables creating custom mock clients for testing, eliminating the need for network calls in unit tests. Conform to ``AmiiboClient`` and return stubbed data or throw ``AmiiboServiceError`` errors to verify your application's behavior:
|
||||||
|
|
||||||
|
```swift
|
||||||
|
import AmiiboService
|
||||||
|
|
||||||
|
struct MyMockClient: AmiiboClient {
|
||||||
|
var error: AmiiboServiceError?
|
||||||
|
|
||||||
|
func getAmiibos(
|
||||||
|
by filter: AmiiboFilter
|
||||||
|
) async throws(AmiiboServiceError) -> [Amiibo] {
|
||||||
|
if let error { throw error }
|
||||||
|
return []
|
||||||
|
}
|
||||||
|
|
||||||
|
// Implement remaining protocol requirements...
|
||||||
|
}
|
||||||
|
|
||||||
|
let service = AmiiboService(client: MyMockClient())
|
||||||
|
```
|
||||||
|
|
||||||
|
Inject the mock client into ``AmiiboService`` via its ``AmiiboService/init(client:)`` initializer to test how your code handles empty results, specific errors, or any other scenario without relying on the live backend.
|
||||||
|
|
||||||
## Tasks
|
## Tasks
|
||||||
|
|
||||||
@@ -61,10 +146,6 @@ $ make
|
|||||||
### Models
|
### Models
|
||||||
|
|
||||||
- ``Amiibo``
|
- ``Amiibo``
|
||||||
- ``Amiibo/Game``
|
|
||||||
- ``Amiibo/Platform``
|
|
||||||
- ``Amiibo/Release``
|
|
||||||
- ``Amiibo/Usage``
|
|
||||||
- ``AmiiboSeries``
|
- ``AmiiboSeries``
|
||||||
- ``AmiiboType``
|
- ``AmiiboType``
|
||||||
- ``GameCharacter``
|
- ``GameCharacter``
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
//
|
//
|
||||||
// This source file is part of the Amiibo Service open source project
|
// This source file is part of the Amiibo Service open source project
|
||||||
//
|
//
|
||||||
// Copyright (c) 2025 Röck+Cöde VoF. and the Amiibo Service project authors
|
// Copyright (c) 2026 Röck+Cöde VoF. and the Amiibo Service project authors
|
||||||
// Licensed under Apache license v2.0
|
// Licensed under Apache license v2.0
|
||||||
//
|
//
|
||||||
// See LICENSE for license information
|
// See LICENSE for license information
|
||||||
@@ -18,17 +18,33 @@ extension DateFormatter {
|
|||||||
|
|
||||||
// MARK: Properties
|
// MARK: Properties
|
||||||
|
|
||||||
|
/// An ISO date formatter.
|
||||||
|
///
|
||||||
|
/// This formatter implements the `yyyy-MM-dd` date format.
|
||||||
|
static let isoDate: DateFormatter = {
|
||||||
|
let formatter = DateFormatter()
|
||||||
|
|
||||||
|
// A fixed-format date requires the POSIX locale, as the user's locale or 12/24-hour setting could otherwise alter the parsing.
|
||||||
|
formatter.locale = .init(identifier: "en_US_POSIX")
|
||||||
|
formatter.dateFormat = "yyyy-MM-dd"
|
||||||
|
formatter.timeZone = .init(secondsFromGMT: 0)
|
||||||
|
|
||||||
|
return formatter
|
||||||
|
}()
|
||||||
|
|
||||||
/// An ISO timestamp formatter.
|
/// An ISO timestamp formatter.
|
||||||
///
|
///
|
||||||
/// This formatter implements the `yyyy-MM-dd'T'HH:mm:ss.SSSSSS` custom date format.
|
/// This formatter implements the `yyyy-MM-dd'T'HH:mm:ss.SSSSSS` custom date format.
|
||||||
/// Within the context of this library, this formatter is solely used to decode a date formatted as a timestamp that is returned by the ``AmiiboService/getLastUpdated()`` function.
|
/// Within the context of this library, this formatter is solely used to decode a date formatted as a timestamp that is returned by the ``AmiiboService/getLastUpdated()`` function.
|
||||||
static var isoTimestamp: DateFormatter {
|
static let isoTimestamp: DateFormatter = {
|
||||||
let formatter = DateFormatter()
|
let formatter = DateFormatter()
|
||||||
|
|
||||||
|
// A fixed-format date requires the POSIX locale, as the user's locale or 12/24-hour setting could otherwise alter the parsing.
|
||||||
|
formatter.locale = .init(identifier: "en_US_POSIX")
|
||||||
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSSSS"
|
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSSSS"
|
||||||
formatter.timeZone = .init(secondsFromGMT: 0)
|
formatter.timeZone = .init(secondsFromGMT: 0)
|
||||||
|
|
||||||
return formatter
|
return formatter
|
||||||
}
|
}()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
//
|
//
|
||||||
// This source file is part of the Amiibo Service open source project
|
// This source file is part of the Amiibo Service open source project
|
||||||
//
|
//
|
||||||
// Copyright (c) 2025 Röck+Cöde VoF. and the Amiibo Service project authors
|
// Copyright (c) 2026 Röck+Cöde VoF. and the Amiibo Service project authors
|
||||||
// Licensed under Apache license v2.0
|
// Licensed under Apache license v2.0
|
||||||
//
|
//
|
||||||
// See LICENSE for license information
|
// See LICENSE for license information
|
||||||
@@ -12,7 +12,7 @@
|
|||||||
//
|
//
|
||||||
// ===----------------------------------------------------------------------===
|
// ===----------------------------------------------------------------------===
|
||||||
|
|
||||||
/// A protocol that defines filters that might contain `key` and/or `name` values.
|
/// A protocol that defines filters containing optional `key` and/or `name` values for querying resources.
|
||||||
protocol KeyNameFilter {
|
protocol KeyNameFilter {
|
||||||
|
|
||||||
// MARK: Properties
|
// MARK: Properties
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
//
|
//
|
||||||
// This source file is part of the Amiibo Service open source project
|
// This source file is part of the Amiibo Service open source project
|
||||||
//
|
//
|
||||||
// Copyright (c) 2025 Röck+Cöde VoF. and the Amiibo Service project authors
|
// Copyright (c) 2026 Röck+Cöde VoF. and the Amiibo Service project authors
|
||||||
// Licensed under Apache license v2.0
|
// Licensed under Apache license v2.0
|
||||||
//
|
//
|
||||||
// See LICENSE for license information
|
// See LICENSE for license information
|
||||||
@@ -12,21 +12,21 @@
|
|||||||
//
|
//
|
||||||
// ===----------------------------------------------------------------------===
|
// ===----------------------------------------------------------------------===
|
||||||
|
|
||||||
/// A protocol that defines decodable models containing the `key` and `name` properties.
|
/// A protocol that defines models containing a `key` and `name` pair.
|
||||||
protocol KeyNameModel: Sendable {
|
protocol KeyNameModel: Sendable, Hashable {
|
||||||
|
|
||||||
// MARK: Properties
|
// MARK: Properties
|
||||||
|
|
||||||
/// A key.
|
/// A hexadecimal key that uniquely identifies this model.
|
||||||
var key: String { get }
|
var key: String { get }
|
||||||
|
|
||||||
/// A name.
|
/// A display name for this model.
|
||||||
var name: String { get }
|
var name: String { get }
|
||||||
|
|
||||||
// MARK: Initializers
|
// MARK: Initializers
|
||||||
|
|
||||||
/// Initializes this model from a given payload.
|
/// Initializes this model from a given payload.
|
||||||
/// - Parameter payload: A payload that contains the values for the model.
|
/// - Parameter payload: A payload that contains the values for the model.
|
||||||
init(_ payload: Components.Schemas.Tuple)
|
init(_ payload: some KeyNamePayload)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,33 @@
|
|||||||
|
// ===----------------------------------------------------------------------===
|
||||||
|
//
|
||||||
|
// This source file is part of the Amiibo Service open source project
|
||||||
|
//
|
||||||
|
// Copyright (c) 2026 Röck+Cöde VoF. and the Amiibo Service project authors
|
||||||
|
// Licensed under Apache license v2.0
|
||||||
|
//
|
||||||
|
// See LICENSE for license information
|
||||||
|
// See CONTRIBUTORS for the list of Amiibo Service project authors
|
||||||
|
//
|
||||||
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
//
|
||||||
|
// ===----------------------------------------------------------------------===
|
||||||
|
|
||||||
|
/// A protocol that unifies the generated payload types containing a `key` and `name` pair.
|
||||||
|
protocol KeyNamePayload {
|
||||||
|
|
||||||
|
// MARK: Properties
|
||||||
|
|
||||||
|
/// A hexadecimal key that uniquely identifies this payload.
|
||||||
|
var key: String { get }
|
||||||
|
|
||||||
|
/// A display name for this payload.
|
||||||
|
var name: String { get }
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// MARK: - Conformances
|
||||||
|
|
||||||
|
extension Components.Schemas.AmiiboSeries: KeyNamePayload {}
|
||||||
|
extension Components.Schemas.AmiiboType: KeyNamePayload {}
|
||||||
|
extension Components.Schemas.GameCharacter: KeyNamePayload {}
|
||||||
|
extension Components.Schemas.GameSeries: KeyNamePayload {}
|
||||||
@@ -0,0 +1,63 @@
|
|||||||
|
// ===----------------------------------------------------------------------===
|
||||||
|
//
|
||||||
|
// This source file is part of the Amiibo Service open source project
|
||||||
|
//
|
||||||
|
// Copyright (c) 2026 Röck+Cöde VoF. and the Amiibo Service project authors
|
||||||
|
// Licensed under Apache license v2.0
|
||||||
|
//
|
||||||
|
// See LICENSE for license information
|
||||||
|
// See CONTRIBUTORS for the list of Amiibo Service project authors
|
||||||
|
//
|
||||||
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
//
|
||||||
|
// ===----------------------------------------------------------------------===
|
||||||
|
|
||||||
|
import Foundation
|
||||||
|
import OpenAPIRuntime
|
||||||
|
|
||||||
|
/// A type that allows the decoding and encoding of ISO dates, supporting both the `yyyy-MM-dd'T'HH:mm:ss.SSSSSS` timestamp format and the `yyyy-MM-dd` date-only format.
|
||||||
|
struct ISODateTimeTranscoder {
|
||||||
|
|
||||||
|
// MARK: Properties
|
||||||
|
|
||||||
|
/// A formatter to use to decode and encode ISO timestamp dates.
|
||||||
|
private let timestampFormatter: DateFormatter = .isoTimestamp
|
||||||
|
|
||||||
|
/// A formatter to use to decode and encode ISO date-only strings.
|
||||||
|
private let dateFormatter: DateFormatter = .isoDate
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// MARK: - DateTranscoder
|
||||||
|
|
||||||
|
extension ISODateTimeTranscoder: DateTranscoder {
|
||||||
|
|
||||||
|
// MARK: Functions
|
||||||
|
|
||||||
|
/// Encodes a date into an ISO timestamp string.
|
||||||
|
/// - Parameter date: A date to encode.
|
||||||
|
/// - Returns: A string representation of the date in `yyyy-MM-dd'T'HH:mm:ss.SSSSSS` format.
|
||||||
|
func encode(_ date: Date) throws -> String {
|
||||||
|
timestampFormatter.string(from: date)
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Decodes an ISO date string into a date, trying the timestamp format first and falling back to the date-only format.
|
||||||
|
/// - Parameter string: A string to decode.
|
||||||
|
/// - Returns: A date parsed from the string.
|
||||||
|
/// - Throws: A `DecodingError` if the string cannot be parsed into a valid date.
|
||||||
|
func decode(_ string: String) throws -> Date {
|
||||||
|
if let date = timestampFormatter.date(from: string) {
|
||||||
|
return date
|
||||||
|
}
|
||||||
|
|
||||||
|
if let date = dateFormatter.date(from: string) {
|
||||||
|
return date
|
||||||
|
}
|
||||||
|
|
||||||
|
throw DecodingError.dataCorrupted(.init(
|
||||||
|
codingPath: [],
|
||||||
|
debugDescription: "Expected an ISO date with format 'yyyy-MM-dd'T'HH:mm:ss.SSSSSS' or 'yyyy-MM-dd', but found '\(string)' instead."
|
||||||
|
))
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,42 +0,0 @@
|
|||||||
// ===----------------------------------------------------------------------===
|
|
||||||
//
|
|
||||||
// This source file is part of the Amiibo Service open source project
|
|
||||||
//
|
|
||||||
// Copyright (c) 2025 Röck+Cöde VoF. and the Amiibo Service project authors
|
|
||||||
// Licensed under Apache license v2.0
|
|
||||||
//
|
|
||||||
// See LICENSE for license information
|
|
||||||
// See CONTRIBUTORS for the list of Amiibo Service project authors
|
|
||||||
//
|
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
|
||||||
//
|
|
||||||
// ===----------------------------------------------------------------------===
|
|
||||||
|
|
||||||
import Foundation
|
|
||||||
import OpenAPIRuntime
|
|
||||||
|
|
||||||
/// A type that allows the decoding and encoding of ISO timestamp dates, defined by the `yyyy-MM-dd'T'HH:mm:ss.SSSSSS` custom date format.
|
|
||||||
struct ISOTimestampTranscoder {
|
|
||||||
|
|
||||||
// MARK: Properties
|
|
||||||
|
|
||||||
/// A formatter to use to decode and encode ISO timestamps dates.
|
|
||||||
private let dateFormatter: DateFormatter = .isoTimestamp
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// MARK: - DateTranscoder
|
|
||||||
|
|
||||||
extension ISOTimestampTranscoder: DateTranscoder {
|
|
||||||
|
|
||||||
// MARK: Functions
|
|
||||||
|
|
||||||
func encode(_ date: Date) throws -> String {
|
|
||||||
dateFormatter.string(from: date)
|
|
||||||
}
|
|
||||||
|
|
||||||
func decode(_ string: String) throws -> Date {
|
|
||||||
dateFormatter.date(from: string) ?? .init()
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
//
|
//
|
||||||
// This source file is part of the Amiibo Service open source project
|
// This source file is part of the Amiibo Service open source project
|
||||||
//
|
//
|
||||||
// Copyright (c) 2025 Röck+Cöde VoF. and the Amiibo Service project authors
|
// Copyright (c) 2026 Röck+Cöde VoF. and the Amiibo Service project authors
|
||||||
// Licensed under Apache license v2.0
|
// Licensed under Apache license v2.0
|
||||||
//
|
//
|
||||||
// See LICENSE for license information
|
// See LICENSE for license information
|
||||||
@@ -16,23 +16,37 @@ import Foundation
|
|||||||
import OpenAPIRuntime
|
import OpenAPIRuntime
|
||||||
import OpenAPIURLSession
|
import OpenAPIURLSession
|
||||||
|
|
||||||
/// A type that implements a live client to the online service.
|
/// A type that implements a live client to the [Amiibo API](https://www.amiiboapi.org) online service.
|
||||||
|
///
|
||||||
|
/// This client maps any transport error or unsuccessful HTTP response to an ``AmiiboServiceError`` error, and sorts the items of the list responses in ascending order by identifier or key.
|
||||||
public struct AmiiboLiveClient: Sendable {
|
public struct AmiiboLiveClient: Sendable {
|
||||||
|
|
||||||
|
// MARK: Constants
|
||||||
|
|
||||||
|
/// The base URL of the live service, resolved once from the server defined in the OpenAPI specification.
|
||||||
|
///
|
||||||
|
/// The validity of the URL is guaranteed by the bundled `openapi.yaml` specification and enforced by a unit test, so resolution is not expected to fail at runtime.
|
||||||
|
static let serverURL: URL = {
|
||||||
|
guard let url = try? Servers.Server1.url() else {
|
||||||
|
fatalError("The server URL defined in the OpenAPI specification could not be resolved. Verify that the 'openapi.yaml' server definition is valid.")
|
||||||
|
}
|
||||||
|
|
||||||
|
return url
|
||||||
|
}()
|
||||||
|
|
||||||
// MARK: Properties
|
// MARK: Properties
|
||||||
|
|
||||||
/// A client generated by the `OpenAPIRuntime` library.
|
/// A client generated by the OpenAPI Runtime library to perform API calls.
|
||||||
private let client: Client
|
private let client: Client
|
||||||
|
|
||||||
// MARK: Initializers
|
// MARK: Initializers
|
||||||
|
|
||||||
/// Initializes this client.
|
/// Initializes this client with a transport for performing HTTP operations.
|
||||||
/// - Parameter transport: A transport that performs HTTP operations.
|
/// - Parameter transport: A transport that performs HTTP operations. Defaults to a `URLSessionTransport` using the shared session.
|
||||||
public init(transport: any ClientTransport = URLSessionTransport()) {
|
public init(transport: any ClientTransport = URLSessionTransport()) {
|
||||||
self.client = .init(
|
self.client = .init(
|
||||||
// The force unwrapping implemented below assumes that the server definition from the OpenAPI specification is correct.
|
serverURL: Self.serverURL,
|
||||||
serverURL: try! Servers.Server1.url(),
|
configuration: .init(dateTranscoder: ISODateTimeTranscoder()),
|
||||||
configuration: .init(dateTranscoder: ISOTimestampTranscoder()),
|
|
||||||
transport: transport
|
transport: transport
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -46,7 +60,6 @@ extension AmiiboLiveClient: AmiiboClient {
|
|||||||
|
|
||||||
// MARK: Functions
|
// MARK: Functions
|
||||||
|
|
||||||
#if swift(>=6.0)
|
|
||||||
/// Gets a list of amiibo items based on a given filter.
|
/// Gets a list of amiibo items based on a given filter.
|
||||||
/// - Parameter filter: A filter to remove unwanted items from the result.
|
/// - Parameter filter: A filter to remove unwanted items from the result.
|
||||||
/// - Returns: A list of filtered amiibo items.
|
/// - Returns: A list of filtered amiibo items.
|
||||||
@@ -98,69 +111,11 @@ extension AmiiboLiveClient: AmiiboClient {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Gets the date when the data was last updated.
|
/// Gets the date when the data was last updated.
|
||||||
/// - Returns: A last updated date.
|
/// - Returns: A last updated date, decoded as UTC.
|
||||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
||||||
public func getLastUpdated() async throws(AmiiboServiceError) -> Date {
|
public func getLastUpdated() async throws(AmiiboServiceError) -> Date {
|
||||||
try await fetchLastUpdated()
|
try await fetchLastUpdated()
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
/// Gets a list of amiibo items based on a given filter.
|
|
||||||
/// - Parameter filter: A filter to remove unwanted items from the result.
|
|
||||||
/// - Returns: A list of filtered amiibo items.
|
|
||||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
|
||||||
public func getAmiibos(
|
|
||||||
by filter: AmiiboFilter
|
|
||||||
) async throws -> [Amiibo] {
|
|
||||||
try await fetchAmiibos(filter)
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Gets a list of amiibo series based on a given filter.
|
|
||||||
/// - Parameter filter: A filter to remove unwanted items from the result.
|
|
||||||
/// - Returns: A list of filtered amiibo series.
|
|
||||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
|
||||||
public func getAmiiboSeries(
|
|
||||||
by filter: AmiiboSeriesFilter
|
|
||||||
) async throws -> [AmiiboSeries] {
|
|
||||||
try await fetchAmiiboSeries(filter)
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Gets a list of amiibo types based on a given filter.
|
|
||||||
/// - Parameter filter: A filter to remove unwanted items from the result.
|
|
||||||
/// - Returns: A list of filtered amiibo types.
|
|
||||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
|
||||||
public func getAmiiboTypes(
|
|
||||||
by filter: AmiiboTypeFilter
|
|
||||||
) async throws -> [AmiiboType] {
|
|
||||||
try await fetchAmiiboTypes(filter)
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Gets a list of game characters based on a given filter.
|
|
||||||
/// - Parameter filter: A filter to remove unwanted items from the result.
|
|
||||||
/// - Returns: A list of filtered game characters.
|
|
||||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
|
||||||
public func getGameCharacters(
|
|
||||||
by filter: GameCharacterFilter
|
|
||||||
) async throws -> [GameCharacter] {
|
|
||||||
try await fetchGameCharacters(filter)
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Gets a list of game series based on a given filter.
|
|
||||||
/// - Parameter filter: A filter to remove unwanted items from the result.
|
|
||||||
/// - Returns: A list of filtered game series.
|
|
||||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
|
||||||
public func getGameSeries(
|
|
||||||
by filter: GameSeriesFilter
|
|
||||||
) async throws -> [GameSeries] {
|
|
||||||
try await fetchGameSeries(filter)
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Gets the date when the data was last updated.
|
|
||||||
/// - Returns: A last updated date.
|
|
||||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
|
||||||
public func getLastUpdated() async throws -> Date {
|
|
||||||
try await fetchLastUpdated()
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -176,11 +131,9 @@ private extension AmiiboLiveClient {
|
|||||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
||||||
func fetchAmiibos(
|
func fetchAmiibos(
|
||||||
_ filter: AmiiboFilter
|
_ filter: AmiiboFilter
|
||||||
) async throws -> [Amiibo] {
|
) async throws(AmiiboServiceError) -> [Amiibo] {
|
||||||
let response: Operations.getAmiibos.Output
|
let response = try await perform {
|
||||||
|
try await client.getAmiibos(.init(query: .init(
|
||||||
do {
|
|
||||||
response = try await client.getAmiibos(.init(query: .init(
|
|
||||||
id: filter.identifier,
|
id: filter.identifier,
|
||||||
head: filter.head,
|
head: filter.head,
|
||||||
tail: filter.tail,
|
tail: filter.tail,
|
||||||
@@ -192,8 +145,6 @@ private extension AmiiboLiveClient {
|
|||||||
showgames: filter.showGames,
|
showgames: filter.showGames,
|
||||||
showusage: filter.showUsage
|
showusage: filter.showUsage
|
||||||
)))
|
)))
|
||||||
} catch {
|
|
||||||
try handle(error: error)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
switch response {
|
switch response {
|
||||||
@@ -208,6 +159,7 @@ private extension AmiiboLiveClient {
|
|||||||
.map { Amiibo($0) }
|
.map { Amiibo($0) }
|
||||||
.sorted { $0.identifier < $1.identifier }
|
.sorted { $0.identifier < $1.identifier }
|
||||||
case .none:
|
case .none:
|
||||||
|
// The service returns `"amiibo": null` when an `id` filter matches nothing.
|
||||||
return []
|
return []
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -228,16 +180,12 @@ private extension AmiiboLiveClient {
|
|||||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
||||||
func fetchAmiiboSeries(
|
func fetchAmiiboSeries(
|
||||||
_ filter: AmiiboSeriesFilter
|
_ filter: AmiiboSeriesFilter
|
||||||
) async throws -> [AmiiboSeries] {
|
) async throws(AmiiboServiceError) -> [AmiiboSeries] {
|
||||||
let response: Operations.getAmiiboSeries.Output
|
let response = try await perform {
|
||||||
|
try await client.getAmiiboSeries(.init(query: .init(
|
||||||
do {
|
|
||||||
response = try await client.getAmiiboSeries(.init(query: .init(
|
|
||||||
key: filter.key,
|
key: filter.key,
|
||||||
name: filter.name
|
name: filter.name
|
||||||
)))
|
)))
|
||||||
} catch {
|
|
||||||
try handle(error: error)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
switch response {
|
switch response {
|
||||||
@@ -246,11 +194,9 @@ private extension AmiiboLiveClient {
|
|||||||
case let .json(output):
|
case let .json(output):
|
||||||
switch output.amiibo {
|
switch output.amiibo {
|
||||||
case let .AmiiboSeries(payload):
|
case let .AmiiboSeries(payload):
|
||||||
return [AmiiboSeries(payload.value1)]
|
return makeModels(from: [payload])
|
||||||
case let .AmiiboSeriesList(list):
|
case let .AmiiboSeriesList(list):
|
||||||
return list
|
return makeModels(from: list)
|
||||||
.map { AmiiboSeries($0.value1) }
|
|
||||||
.sorted { $0.key < $1.key }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
case .badRequest:
|
case .badRequest:
|
||||||
@@ -270,16 +216,12 @@ private extension AmiiboLiveClient {
|
|||||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
||||||
func fetchAmiiboTypes(
|
func fetchAmiiboTypes(
|
||||||
_ filter: AmiiboTypeFilter
|
_ filter: AmiiboTypeFilter
|
||||||
) async throws -> [AmiiboType] {
|
) async throws(AmiiboServiceError) -> [AmiiboType] {
|
||||||
let response: Operations.getAmiiboTypes.Output
|
let response = try await perform {
|
||||||
|
try await client.getAmiiboTypes(.init(query: .init(
|
||||||
do {
|
|
||||||
response = try await client.getAmiiboTypes(.init(query: .init(
|
|
||||||
key: filter.key,
|
key: filter.key,
|
||||||
name: filter.name
|
name: filter.name
|
||||||
)))
|
)))
|
||||||
} catch {
|
|
||||||
try handle(error: error)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
switch response {
|
switch response {
|
||||||
@@ -288,11 +230,9 @@ private extension AmiiboLiveClient {
|
|||||||
case let .json(output):
|
case let .json(output):
|
||||||
switch output.amiibo {
|
switch output.amiibo {
|
||||||
case let .AmiiboType(payload):
|
case let .AmiiboType(payload):
|
||||||
return [AmiiboType(payload.value1)]
|
return makeModels(from: [payload])
|
||||||
case let .AmiiboTypeList(list):
|
case let .AmiiboTypeList(list):
|
||||||
return list
|
return makeModels(from: list)
|
||||||
.map { AmiiboType($0.value1) }
|
|
||||||
.sorted { $0.key < $1.key }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
case .badRequest:
|
case .badRequest:
|
||||||
@@ -312,16 +252,12 @@ private extension AmiiboLiveClient {
|
|||||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
||||||
func fetchGameCharacters(
|
func fetchGameCharacters(
|
||||||
_ filter: GameCharacterFilter
|
_ filter: GameCharacterFilter
|
||||||
) async throws -> [GameCharacter] {
|
) async throws(AmiiboServiceError) -> [GameCharacter] {
|
||||||
let response: Operations.getGameCharacters.Output
|
let response = try await perform {
|
||||||
|
try await client.getGameCharacters(.init(query: .init(
|
||||||
do {
|
|
||||||
response = try await client.getGameCharacters(.init(query: .init(
|
|
||||||
key: filter.key,
|
key: filter.key,
|
||||||
name: filter.name
|
name: filter.name
|
||||||
)))
|
)))
|
||||||
} catch {
|
|
||||||
try handle(error: error)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
switch response {
|
switch response {
|
||||||
@@ -330,11 +266,9 @@ private extension AmiiboLiveClient {
|
|||||||
case let .json(output):
|
case let .json(output):
|
||||||
switch output.amiibo {
|
switch output.amiibo {
|
||||||
case let .GameCharacter(payload):
|
case let .GameCharacter(payload):
|
||||||
return [GameCharacter(payload.value1)]
|
return makeModels(from: [payload])
|
||||||
case let .GameCharacterList(list):
|
case let .GameCharacterList(list):
|
||||||
return list
|
return makeModels(from: list)
|
||||||
.map { GameCharacter($0.value1) }
|
|
||||||
.sorted { $0.key < $1.key }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
case .badRequest:
|
case .badRequest:
|
||||||
@@ -354,16 +288,12 @@ private extension AmiiboLiveClient {
|
|||||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
||||||
func fetchGameSeries(
|
func fetchGameSeries(
|
||||||
_ filter: GameSeriesFilter
|
_ filter: GameSeriesFilter
|
||||||
) async throws -> [GameSeries] {
|
) async throws(AmiiboServiceError) -> [GameSeries] {
|
||||||
let response: Operations.getGameSeries.Output
|
let response = try await perform {
|
||||||
|
try await client.getGameSeries(.init(query: .init(
|
||||||
do {
|
|
||||||
response = try await client.getGameSeries(.init(query: .init(
|
|
||||||
key: filter.key,
|
key: filter.key,
|
||||||
name: filter.name
|
name: filter.name
|
||||||
)))
|
)))
|
||||||
} catch {
|
|
||||||
try handle(error: error)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
switch response {
|
switch response {
|
||||||
@@ -372,11 +302,9 @@ private extension AmiiboLiveClient {
|
|||||||
case let .json(output):
|
case let .json(output):
|
||||||
switch output.amiibo {
|
switch output.amiibo {
|
||||||
case let .GameSeries(payload):
|
case let .GameSeries(payload):
|
||||||
return [GameSeries(payload.value1)]
|
return makeModels(from: [payload])
|
||||||
case let .GameSeriesList(list):
|
case let .GameSeriesList(list):
|
||||||
return list
|
return makeModels(from: list)
|
||||||
.map { GameSeries($0.value1) }
|
|
||||||
.sorted { $0.key < $1.key }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
case .badRequest:
|
case .badRequest:
|
||||||
@@ -391,15 +319,11 @@ private extension AmiiboLiveClient {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Fetches the date when the data was last updated.
|
/// Fetches the date when the data was last updated.
|
||||||
/// - Returns: A fetched last updated date.
|
/// - Returns: A fetched last updated date, decoded as UTC.
|
||||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
||||||
func fetchLastUpdated() async throws -> Date {
|
func fetchLastUpdated() async throws(AmiiboServiceError) -> Date {
|
||||||
let response: Operations.getLastUpdated.Output
|
let response = try await perform {
|
||||||
|
try await client.getLastUpdated()
|
||||||
do {
|
|
||||||
response = try await client.getLastUpdated()
|
|
||||||
} catch {
|
|
||||||
try handle(error: error)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
switch response {
|
switch response {
|
||||||
@@ -415,10 +339,33 @@ private extension AmiiboLiveClient {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Maps a given error to a `AmiiboServiceError` error.
|
/// Performs an API call, mapping any error thrown by the underlying client to an ``AmiiboServiceError`` error.
|
||||||
|
/// - Parameter operation: A closure that performs the API call.
|
||||||
|
/// - Returns: The output of the performed API call.
|
||||||
|
/// - Throws: An ``AmiiboServiceError`` error in case the API call failed.
|
||||||
|
func perform<Output>(
|
||||||
|
_ operation: () async throws -> Output
|
||||||
|
) async throws(AmiiboServiceError) -> Output {
|
||||||
|
do {
|
||||||
|
return try await operation()
|
||||||
|
} catch {
|
||||||
|
try handle(error: error)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Maps a list of key-name payloads into a sorted list of models.
|
||||||
|
/// - Parameter payloads: A list of payloads to map into models.
|
||||||
|
/// - Returns: A list of models sorted by their keys in ascending order.
|
||||||
|
func makeModels<Model: KeyNameModel>(from payloads: [some KeyNamePayload]) -> [Model] {
|
||||||
|
payloads
|
||||||
|
.map { Model($0) }
|
||||||
|
.sorted { $0.key < $1.key }
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Maps a given error to an ``AmiiboServiceError`` error.
|
||||||
/// - Parameter error: An error to map.
|
/// - Parameter error: An error to map.
|
||||||
/// - Throws: An ``AmiiboServiceError`` error.
|
/// - Throws: An ``AmiiboServiceError`` error that corresponds to the given error.
|
||||||
func handle(error: any Error) throws -> Never {
|
func handle(error: any Error) throws(AmiiboServiceError) -> Never {
|
||||||
switch error {
|
switch error {
|
||||||
case is CancellationError:
|
case is CancellationError:
|
||||||
throw AmiiboServiceError.cancelled
|
throw AmiiboServiceError.cancelled
|
||||||
@@ -428,21 +375,28 @@ private extension AmiiboLiveClient {
|
|||||||
throw AmiiboServiceError.decoding
|
throw AmiiboServiceError.decoding
|
||||||
case let urlError as URLError:
|
case let urlError as URLError:
|
||||||
switch urlError.code {
|
switch urlError.code {
|
||||||
|
case .cancelled:
|
||||||
|
throw AmiiboServiceError.cancelled
|
||||||
|
case .cannotParseResponse:
|
||||||
|
throw AmiiboServiceError.decoding
|
||||||
case .cannotFindHost,
|
case .cannotFindHost,
|
||||||
.cannotConnectToHost,
|
.cannotConnectToHost,
|
||||||
|
.dataNotAllowed,
|
||||||
.dnsLookupFailed,
|
.dnsLookupFailed,
|
||||||
|
.internationalRoamingOff,
|
||||||
.networkConnectionLost,
|
.networkConnectionLost,
|
||||||
.notConnectedToInternet,
|
.notConnectedToInternet,
|
||||||
|
.secureConnectionFailed,
|
||||||
.timedOut:
|
.timedOut:
|
||||||
throw AmiiboServiceError.notAvailable
|
throw AmiiboServiceError.notAvailable
|
||||||
default:
|
default:
|
||||||
throw AmiiboServiceError.unknown
|
throw AmiiboServiceError.unknown(String(describing: urlError))
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
throw AmiiboServiceError.unknown
|
throw AmiiboServiceError.unknown(String(describing: clientError.underlyingError))
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
throw AmiiboServiceError.unknown
|
throw AmiiboServiceError.unknown(String(describing: error))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,35 +1,57 @@
|
|||||||
// ===----------------------------------------------------------------------===
|
// ===----------------------------------------------------------------------===
|
||||||
//
|
//
|
||||||
// This source file is part of the Amiibo Service open source project
|
// This source file is part of the Amiibo Service open source project
|
||||||
//
|
//
|
||||||
// Copyright (c) 2025 Röck+Cöde VoF. and the Amiibo Service project authors
|
// Copyright (c) 2026 Röck+Cöde VoF. and the Amiibo Service project authors
|
||||||
// Licensed under Apache license v2.0
|
// Licensed under Apache license v2.0
|
||||||
//
|
//
|
||||||
// See LICENSE for license information
|
// See LICENSE for license information
|
||||||
// See CONTRIBUTORS for the list of Amiibo Service project authors
|
// See CONTRIBUTORS for the list of Amiibo Service project authors
|
||||||
//
|
//
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
//
|
//
|
||||||
// ===----------------------------------------------------------------------===
|
// ===----------------------------------------------------------------------===
|
||||||
|
|
||||||
|
import Foundation
|
||||||
|
|
||||||
/// A representation of all the possible errors that the ``AmiiboService`` service could throw.
|
/// A representation of all the possible errors that the ``AmiiboService`` service could throw.
|
||||||
public enum AmiiboServiceError: Error {
|
public enum AmiiboServiceError: Error {
|
||||||
/// A bad request has been given to the client.
|
/// The request was malformed or contained invalid filter parameters.
|
||||||
case badRequest
|
case badRequest
|
||||||
/// A call to an endpoint has been cancelled by the user.
|
/// The request was cancelled before a response was received.
|
||||||
case cancelled
|
case cancelled
|
||||||
/// A response cannot be decoded.
|
/// The response body could not be decoded into the expected model.
|
||||||
case decoding
|
case decoding
|
||||||
/// An online service is not currently available.
|
/// The backend service is currently unreachable due to a network or server issue.
|
||||||
case notAvailable
|
case notAvailable
|
||||||
/// A response cannot be found.
|
/// No results were found matching the given filter criteria.
|
||||||
case notFound
|
case notFound
|
||||||
/// An undocumented/unsupported status code error.
|
/// The server returned an undocumented HTTP status code.
|
||||||
case undocumented(_ statusCode: Int)
|
case undocumented(_ statusCode: Int)
|
||||||
/// An unknown error.
|
/// An unexpected error that does not fall into any other category, with a description of the underlying error.
|
||||||
case unknown
|
case unknown(_ description: String)
|
||||||
}
|
}
|
||||||
|
|
||||||
// MARK: - Equatable
|
// MARK: - Equatable
|
||||||
|
|
||||||
extension AmiiboServiceError: Equatable {}
|
extension AmiiboServiceError: Equatable {}
|
||||||
|
|
||||||
|
// MARK: - LocalizedError
|
||||||
|
|
||||||
|
extension AmiiboServiceError: LocalizedError {
|
||||||
|
|
||||||
|
// MARK: Properties
|
||||||
|
|
||||||
|
public var errorDescription: String? {
|
||||||
|
switch self {
|
||||||
|
case .badRequest: "The request was malformed or contained invalid filter parameters."
|
||||||
|
case .cancelled: "The request was cancelled before a response was received."
|
||||||
|
case .decoding: "The response body could not be decoded into the expected model."
|
||||||
|
case .notAvailable: "The backend service is currently unreachable due to a network or server issue."
|
||||||
|
case .notFound: "No results were found matching the given filter criteria."
|
||||||
|
case .undocumented(let statusCode): "The server returned an undocumented HTTP status code: \(statusCode)."
|
||||||
|
case .unknown(let description): "An unexpected error occurred: \(description)"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
//
|
//
|
||||||
// This source file is part of the Amiibo Service open source project
|
// This source file is part of the Amiibo Service open source project
|
||||||
//
|
//
|
||||||
// Copyright (c) 2025 Röck+Cöde VoF. and the Amiibo Service project authors
|
// Copyright (c) 2026 Röck+Cöde VoF. and the Amiibo Service project authors
|
||||||
// Licensed under Apache license v2.0
|
// Licensed under Apache license v2.0
|
||||||
//
|
//
|
||||||
// See LICENSE for license information
|
// See LICENSE for license information
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
//
|
//
|
||||||
// This source file is part of the Amiibo Service open source project
|
// This source file is part of the Amiibo Service open source project
|
||||||
//
|
//
|
||||||
// Copyright (c) 2025 Röck+Cöde VoF. and the Amiibo Service project authors
|
// Copyright (c) 2026 Röck+Cöde VoF. and the Amiibo Service project authors
|
||||||
// Licensed under Apache license v2.0
|
// Licensed under Apache license v2.0
|
||||||
//
|
//
|
||||||
// See LICENSE for license information
|
// See LICENSE for license information
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
//
|
//
|
||||||
// This source file is part of the Amiibo Service open source project
|
// This source file is part of the Amiibo Service open source project
|
||||||
//
|
//
|
||||||
// Copyright (c) 2025 Röck+Cöde VoF. and the Amiibo Service project authors
|
// Copyright (c) 2026 Röck+Cöde VoF. and the Amiibo Service project authors
|
||||||
// Licensed under Apache license v2.0
|
// Licensed under Apache license v2.0
|
||||||
//
|
//
|
||||||
// See LICENSE for license information
|
// See LICENSE for license information
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
//
|
//
|
||||||
// This source file is part of the Amiibo Service open source project
|
// This source file is part of the Amiibo Service open source project
|
||||||
//
|
//
|
||||||
// Copyright (c) 2025 Röck+Cöde VoF. and the Amiibo Service project authors
|
// Copyright (c) 2026 Röck+Cöde VoF. and the Amiibo Service project authors
|
||||||
// Licensed under Apache license v2.0
|
// Licensed under Apache license v2.0
|
||||||
//
|
//
|
||||||
// See LICENSE for license information
|
// See LICENSE for license information
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
//
|
//
|
||||||
// This source file is part of the Amiibo Service open source project
|
// This source file is part of the Amiibo Service open source project
|
||||||
//
|
//
|
||||||
// Copyright (c) 2025 Röck+Cöde VoF. and the Amiibo Service project authors
|
// Copyright (c) 2026 Röck+Cöde VoF. and the Amiibo Service project authors
|
||||||
// Licensed under Apache license v2.0
|
// Licensed under Apache license v2.0
|
||||||
//
|
//
|
||||||
// See LICENSE for license information
|
// See LICENSE for license information
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
//
|
//
|
||||||
// This source file is part of the Amiibo Service open source project
|
// This source file is part of the Amiibo Service open source project
|
||||||
//
|
//
|
||||||
// Copyright (c) 2025 Röck+Cöde VoF. and the Amiibo Service project authors
|
// Copyright (c) 2026 Röck+Cöde VoF. and the Amiibo Service project authors
|
||||||
// Licensed under Apache license v2.0
|
// Licensed under Apache license v2.0
|
||||||
//
|
//
|
||||||
// See LICENSE for license information
|
// See LICENSE for license information
|
||||||
@@ -14,39 +14,39 @@
|
|||||||
|
|
||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
/// A model that represents an amiibo item.
|
/// A model that represents an amiibo.
|
||||||
public struct Amiibo: Sendable {
|
public struct Amiibo: Sendable, Hashable {
|
||||||
|
|
||||||
// MARK: Properties
|
// MARK: Properties
|
||||||
|
|
||||||
/// A game character.
|
/// The name of the game character associated with this amiibo.
|
||||||
public let gameCharacter: String
|
public let gameCharacter: String
|
||||||
|
|
||||||
/// A game series.
|
/// The name of the game series associated with this amiibo.
|
||||||
public let gameSeries: String
|
public let gameSeries: String
|
||||||
|
|
||||||
/// The first 8 hexadecimal characters of an identifier.
|
/// The first 8 hexadecimal characters of the amiibo identifier.
|
||||||
public let head: String
|
public let head: String
|
||||||
|
|
||||||
/// An image link.
|
/// A URL string pointing to the image of this amiibo.
|
||||||
public let image: String
|
public let image: String
|
||||||
|
|
||||||
/// An amiibo name.
|
/// The name of this amiibo.
|
||||||
public let name: String
|
public let name: String
|
||||||
|
|
||||||
/// A game platform type, if any.
|
/// The game platform data for this amiibo, if available.
|
||||||
public let platform: Platform?
|
public let platform: Platform?
|
||||||
|
|
||||||
/// A release date.
|
/// The release dates of this amiibo across different regions.
|
||||||
public let release: Release
|
public let release: Release
|
||||||
|
|
||||||
/// An amiibo series.
|
/// The name of the amiibo series this amiibo belongs to.
|
||||||
public let series: String
|
public let series: String
|
||||||
|
|
||||||
/// The last 8 hexadecimal characters of an identifier.
|
/// The last 8 hexadecimal characters of the amiibo identifier.
|
||||||
public let tail: String
|
public let tail: String
|
||||||
|
|
||||||
/// An amiibo type.
|
/// The type of this amiibo (e.g., Figure, Card, Yarn, Band).
|
||||||
public let type: String
|
public let type: String
|
||||||
|
|
||||||
// MARK: Initializers
|
// MARK: Initializers
|
||||||
@@ -61,6 +61,7 @@ public struct Amiibo: Sendable {
|
|||||||
self.name = payload.name
|
self.name = payload.name
|
||||||
self.platform = .init(
|
self.platform = .init(
|
||||||
payload.gamesSwitch,
|
payload.gamesSwitch,
|
||||||
|
payload.gamesSwitch2,
|
||||||
payload.games3DS,
|
payload.games3DS,
|
||||||
payload.gamesWiiU
|
payload.gamesWiiU
|
||||||
)
|
)
|
||||||
@@ -72,12 +73,12 @@ public struct Amiibo: Sendable {
|
|||||||
|
|
||||||
// MARK: Computed
|
// MARK: Computed
|
||||||
|
|
||||||
/// An identifier.
|
/// The full 16-character hexadecimal identifier, composed of the ``head`` and ``tail``.
|
||||||
public var identifier: String {
|
public var identifier: String {
|
||||||
head + tail
|
head + tail
|
||||||
}
|
}
|
||||||
|
|
||||||
/// A URL related to an image link, if any.
|
/// A URL constructed from the ``image`` string, if valid.
|
||||||
public var imageURL: URL? {
|
public var imageURL: URL? {
|
||||||
.init(string: image)
|
.init(string: image)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
//
|
//
|
||||||
// This source file is part of the Amiibo Service open source project
|
// This source file is part of the Amiibo Service open source project
|
||||||
//
|
//
|
||||||
// Copyright (c) 2025 Röck+Cöde VoF. and the Amiibo Service project authors
|
// Copyright (c) 2026 Röck+Cöde VoF. and the Amiibo Service project authors
|
||||||
// Licensed under Apache license v2.0
|
// Licensed under Apache license v2.0
|
||||||
//
|
//
|
||||||
// See LICENSE for license information
|
// See LICENSE for license information
|
||||||
@@ -13,18 +13,18 @@
|
|||||||
// ===----------------------------------------------------------------------===
|
// ===----------------------------------------------------------------------===
|
||||||
|
|
||||||
extension Amiibo {
|
extension Amiibo {
|
||||||
/// A model that represents a game related to an amiibo item.
|
/// A model that represents a game related to an amiibo.
|
||||||
public struct Game: Sendable {
|
public struct Game: Sendable, Hashable {
|
||||||
|
|
||||||
// MARK: Properties
|
// MARK: Properties
|
||||||
|
|
||||||
/// A list of identifiers.
|
/// A list of game identifiers associated with this game.
|
||||||
public let identifiers: [String]
|
public let identifiers: [String]
|
||||||
|
|
||||||
/// A name.
|
/// The name of this game.
|
||||||
public let name: String
|
public let name: String
|
||||||
|
|
||||||
/// A list of amiibo usages, if any.
|
/// A list of amiibo usages within this game, if available.
|
||||||
public let usages: [Usage]?
|
public let usages: [Usage]?
|
||||||
|
|
||||||
// MARK: Initializers
|
// MARK: Initializers
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
//
|
//
|
||||||
// This source file is part of the Amiibo Service open source project
|
// This source file is part of the Amiibo Service open source project
|
||||||
//
|
//
|
||||||
// Copyright (c) 2025 Röck+Cöde VoF. and the Amiibo Service project authors
|
// Copyright (c) 2026 Röck+Cöde VoF. and the Amiibo Service project authors
|
||||||
// Licensed under Apache license v2.0
|
// Licensed under Apache license v2.0
|
||||||
//
|
//
|
||||||
// See LICENSE for license information
|
// See LICENSE for license information
|
||||||
@@ -13,54 +13,52 @@
|
|||||||
// ===----------------------------------------------------------------------===
|
// ===----------------------------------------------------------------------===
|
||||||
|
|
||||||
extension Amiibo {
|
extension Amiibo {
|
||||||
/// A model that represents a collection of `WiiU`, `3DS`, and `Switch` games related to an amiibo item.
|
/// A model that represents a collection of `Switch`, `Switch 2`, `3DS`, and `Wii U` games related to an amiibo.
|
||||||
public struct Platform: Sendable {
|
public struct Platform: Sendable, Hashable {
|
||||||
|
|
||||||
// MARK: Properties
|
// MARK: Properties
|
||||||
|
|
||||||
/// A list of `Switch` games related to an amiibo item.
|
/// A list of `Switch` games related to an amiibo.
|
||||||
public let `switch`: [Game]
|
public let `switch`: [Game]
|
||||||
|
|
||||||
|
/// A list of `Switch 2` games related to an amiibo.
|
||||||
|
public let switch2: [Game]
|
||||||
|
|
||||||
/// A list of `3DS` games related to an amiibo item.
|
/// A list of `3DS` games related to an amiibo.
|
||||||
public let threeDS: [Game]
|
public let threeDS: [Game]
|
||||||
|
|
||||||
/// A list of `WiiU` games related to an amiibo item.
|
/// A list of `Wii U` games related to an amiibo.
|
||||||
public let wiiU: [Game]
|
public let wiiU: [Game]
|
||||||
|
|
||||||
// MARK: Initialisers
|
// MARK: Initializers
|
||||||
|
|
||||||
/// Initializes this model.
|
/// Initializes this model.
|
||||||
///
|
///
|
||||||
/// > important: In case no data is provided, then an instance of this model is not created.
|
/// > important: In case no data is provided, then an instance of this model is not created.
|
||||||
///
|
///
|
||||||
/// - Parameters:
|
/// - Parameters:
|
||||||
/// - switch: A list of `Switch` games related to an amiibo item, if any.
|
/// - switch: A list of `Switch` games related to an amiibo, if any.
|
||||||
/// - threeDS: A list of `3DS` games related to an amiibo item, if any.
|
/// - switch2: A list of `Switch 2` games related to an amiibo, if any.
|
||||||
/// - wiiU: A list of `WiiU` games related to an amiibo item, if any.
|
/// - threeDS: A list of `3DS` games related to an amiibo, if any.
|
||||||
|
/// - wiiU: A list of `Wii U` games related to an amiibo, if any.
|
||||||
init?(
|
init?(
|
||||||
_ `switch`: [Components.Schemas.AmiiboGame]?,
|
_ `switch`: [Components.Schemas.AmiiboGame]?,
|
||||||
|
_ switch2: [Components.Schemas.AmiiboGame]?,
|
||||||
_ threeDS: [Components.Schemas.AmiiboGame]?,
|
_ threeDS: [Components.Schemas.AmiiboGame]?,
|
||||||
_ wiiU: [Components.Schemas.AmiiboGame]?
|
_ wiiU: [Components.Schemas.AmiiboGame]?
|
||||||
) {
|
) {
|
||||||
guard (`switch` != nil && `switch`?.isEmpty == false)
|
guard `switch`?.isEmpty == false
|
||||||
|| (threeDS != nil && threeDS?.isEmpty == false)
|
|| switch2?.isEmpty == false
|
||||||
|| (wiiU != nil && wiiU?.isEmpty == false)
|
|| threeDS?.isEmpty == false
|
||||||
|
|| wiiU?.isEmpty == false
|
||||||
else {
|
else {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
self.switch = {
|
self.switch = `switch`?.map { .init($0) } ?? []
|
||||||
guard let `switch` else { return [] }
|
self.switch2 = switch2?.map { .init($0) } ?? []
|
||||||
return `switch`.map { .init($0) }
|
self.threeDS = threeDS?.map { .init($0) } ?? []
|
||||||
}()
|
self.wiiU = wiiU?.map { .init($0) } ?? []
|
||||||
self.threeDS = {
|
|
||||||
guard let threeDS else { return [] }
|
|
||||||
return threeDS.map { .init($0) }
|
|
||||||
}()
|
|
||||||
self.wiiU = {
|
|
||||||
guard let wiiU else { return [] }
|
|
||||||
return wiiU.map { .init($0) }
|
|
||||||
}()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
//
|
//
|
||||||
// This source file is part of the Amiibo Service open source project
|
// This source file is part of the Amiibo Service open source project
|
||||||
//
|
//
|
||||||
// Copyright (c) 2025 Röck+Cöde VoF. and the Amiibo Service project authors
|
// Copyright (c) 2026 Röck+Cöde VoF. and the Amiibo Service project authors
|
||||||
// Licensed under Apache license v2.0
|
// Licensed under Apache license v2.0
|
||||||
//
|
//
|
||||||
// See LICENSE for license information
|
// See LICENSE for license information
|
||||||
@@ -15,8 +15,10 @@
|
|||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
extension Amiibo {
|
extension Amiibo {
|
||||||
/// A model that represents a collection of release dates related to an amiibo item.
|
/// A model that represents the regional release dates of an amiibo.
|
||||||
public struct Release: Sendable {
|
///
|
||||||
|
/// The service provides these dates as date-only values, which are decoded as midnight UTC.
|
||||||
|
public struct Release: Sendable, Hashable {
|
||||||
|
|
||||||
// MARK: Properties
|
// MARK: Properties
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
//
|
//
|
||||||
// This source file is part of the Amiibo Service open source project
|
// This source file is part of the Amiibo Service open source project
|
||||||
//
|
//
|
||||||
// Copyright (c) 2025 Röck+Cöde VoF. and the Amiibo Service project authors
|
// Copyright (c) 2026 Röck+Cöde VoF. and the Amiibo Service project authors
|
||||||
// Licensed under Apache license v2.0
|
// Licensed under Apache license v2.0
|
||||||
//
|
//
|
||||||
// See LICENSE for license information
|
// See LICENSE for license information
|
||||||
@@ -13,15 +13,15 @@
|
|||||||
// ===----------------------------------------------------------------------===
|
// ===----------------------------------------------------------------------===
|
||||||
|
|
||||||
extension Amiibo {
|
extension Amiibo {
|
||||||
/// A model that represents the usage of an amiibo item within a certain game.
|
/// A model that represents the usage of an amiibo within a certain game.
|
||||||
public struct Usage: Sendable {
|
public struct Usage: Sendable, Hashable {
|
||||||
|
|
||||||
// MARK: Properties
|
// MARK: Properties
|
||||||
|
|
||||||
/// An explanation of how to use an amiibo item.
|
/// A description of how the amiibo is used within the game.
|
||||||
public let explanation: String
|
public let explanation: String
|
||||||
|
|
||||||
/// A flag that indicates whether an amiibo item can save game data in it.
|
/// A flag that indicates whether the amiibo can save game data.
|
||||||
public let isWriteable: Bool
|
public let isWriteable: Bool
|
||||||
|
|
||||||
// MARK: Initializers
|
// MARK: Initializers
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
//
|
//
|
||||||
// This source file is part of the Amiibo Service open source project
|
// This source file is part of the Amiibo Service open source project
|
||||||
//
|
//
|
||||||
// Copyright (c) 2025 Röck+Cöde VoF. and the Amiibo Service project authors
|
// Copyright (c) 2026 Röck+Cöde VoF. and the Amiibo Service project authors
|
||||||
// Licensed under Apache license v2.0
|
// Licensed under Apache license v2.0
|
||||||
//
|
//
|
||||||
// See LICENSE for license information
|
// See LICENSE for license information
|
||||||
@@ -14,20 +14,20 @@
|
|||||||
|
|
||||||
/// A model that represents an amiibo series.
|
/// A model that represents an amiibo series.
|
||||||
public struct AmiiboSeries: KeyNameModel {
|
public struct AmiiboSeries: KeyNameModel {
|
||||||
|
|
||||||
// TODO: Remove the documentation from the properties of this type as the `--enable-inherited-docs` flag when generating DocC documentation is not working as intended (?).
|
|
||||||
|
|
||||||
// MARK: Properties
|
// MARK: Properties
|
||||||
|
|
||||||
/// A key.
|
/// The hexadecimal key that uniquely identifies this amiibo series.
|
||||||
public let key: String
|
public let key: String
|
||||||
|
|
||||||
/// A name.
|
/// The name of this amiibo series.
|
||||||
public let name: String
|
public let name: String
|
||||||
|
|
||||||
// MARK: Initializers
|
// MARK: Initializers
|
||||||
|
|
||||||
init(_ payload: Components.Schemas.Tuple) {
|
/// Initializes this model from a given payload.
|
||||||
|
/// - Parameter payload: A payload that contains the values for the model.
|
||||||
|
init(_ payload: some KeyNamePayload) {
|
||||||
self.key = payload.key
|
self.key = payload.key
|
||||||
self.name = payload.name
|
self.name = payload.name
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
//
|
//
|
||||||
// This source file is part of the Amiibo Service open source project
|
// This source file is part of the Amiibo Service open source project
|
||||||
//
|
//
|
||||||
// Copyright (c) 2025 Röck+Cöde VoF. and the Amiibo Service project authors
|
// Copyright (c) 2026 Röck+Cöde VoF. and the Amiibo Service project authors
|
||||||
// Licensed under Apache license v2.0
|
// Licensed under Apache license v2.0
|
||||||
//
|
//
|
||||||
// See LICENSE for license information
|
// See LICENSE for license information
|
||||||
@@ -15,19 +15,19 @@
|
|||||||
/// A model that represents an amiibo type.
|
/// A model that represents an amiibo type.
|
||||||
public struct AmiiboType: KeyNameModel {
|
public struct AmiiboType: KeyNameModel {
|
||||||
|
|
||||||
// TODO: Remove the documentation from the properties of this type as the `--enable-inherited-docs` flag when generating DocC documentation is not working as intended (?).
|
|
||||||
|
|
||||||
// MARK: Properties
|
// MARK: Properties
|
||||||
|
|
||||||
/// A key.
|
/// The hexadecimal key that uniquely identifies this amiibo type.
|
||||||
public let key: String
|
public let key: String
|
||||||
|
|
||||||
/// A name.
|
/// The name of this amiibo type (e.g., Figure, Card, Yarn, Band).
|
||||||
public let name: String
|
public let name: String
|
||||||
|
|
||||||
// MARK: Initializers
|
// MARK: Initializers
|
||||||
|
|
||||||
init(_ payload: Components.Schemas.Tuple) {
|
/// Initializes this model from a given payload.
|
||||||
|
/// - Parameter payload: A payload that contains the values for the model.
|
||||||
|
init(_ payload: some KeyNamePayload) {
|
||||||
self.key = payload.key
|
self.key = payload.key
|
||||||
self.name = payload.name
|
self.name = payload.name
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
//
|
//
|
||||||
// This source file is part of the Amiibo Service open source project
|
// This source file is part of the Amiibo Service open source project
|
||||||
//
|
//
|
||||||
// Copyright (c) 2025 Röck+Cöde VoF. and the Amiibo Service project authors
|
// Copyright (c) 2026 Röck+Cöde VoF. and the Amiibo Service project authors
|
||||||
// Licensed under Apache license v2.0
|
// Licensed under Apache license v2.0
|
||||||
//
|
//
|
||||||
// See LICENSE for license information
|
// See LICENSE for license information
|
||||||
@@ -15,19 +15,19 @@
|
|||||||
/// A model that represents a game character.
|
/// A model that represents a game character.
|
||||||
public struct GameCharacter: KeyNameModel {
|
public struct GameCharacter: KeyNameModel {
|
||||||
|
|
||||||
// TODO: Remove the documentation from the properties of this type as the `--enable-inherited-docs` flag when generating DocC documentation is not working as intended (?).
|
|
||||||
|
|
||||||
// MARK: Properties
|
// MARK: Properties
|
||||||
|
|
||||||
/// A key.
|
/// The hexadecimal key that uniquely identifies this game character.
|
||||||
public let key: String
|
public let key: String
|
||||||
|
|
||||||
/// A name.
|
/// The name of this game character.
|
||||||
public let name: String
|
public let name: String
|
||||||
|
|
||||||
// MARK: Initializers
|
// MARK: Initializers
|
||||||
|
|
||||||
init(_ payload: Components.Schemas.Tuple) {
|
/// Initializes this model from a given payload.
|
||||||
|
/// - Parameter payload: A payload that contains the values for the model.
|
||||||
|
init(_ payload: some KeyNamePayload) {
|
||||||
self.key = payload.key
|
self.key = payload.key
|
||||||
self.name = payload.name
|
self.name = payload.name
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
//
|
//
|
||||||
// This source file is part of the Amiibo Service open source project
|
// This source file is part of the Amiibo Service open source project
|
||||||
//
|
//
|
||||||
// Copyright (c) 2025 Röck+Cöde VoF. and the Amiibo Service project authors
|
// Copyright (c) 2026 Röck+Cöde VoF. and the Amiibo Service project authors
|
||||||
// Licensed under Apache license v2.0
|
// Licensed under Apache license v2.0
|
||||||
//
|
//
|
||||||
// See LICENSE for license information
|
// See LICENSE for license information
|
||||||
@@ -15,19 +15,19 @@
|
|||||||
/// A model that represents a game series.
|
/// A model that represents a game series.
|
||||||
public struct GameSeries: KeyNameModel {
|
public struct GameSeries: KeyNameModel {
|
||||||
|
|
||||||
// TODO: Remove the documentation from the properties of this type as the `--enable-inherited-docs` flag when generating DocC documentation is not working as intended (?).
|
|
||||||
|
|
||||||
// MARK: Properties
|
// MARK: Properties
|
||||||
|
|
||||||
/// A key.
|
/// The hexadecimal key that uniquely identifies this game series.
|
||||||
public let key: String
|
public let key: String
|
||||||
|
|
||||||
/// A name.
|
/// The name of this game series.
|
||||||
public let name: String
|
public let name: String
|
||||||
|
|
||||||
// MARK: Initializers
|
// MARK: Initializers
|
||||||
|
|
||||||
init(_ payload: Components.Schemas.Tuple) {
|
/// Initializes this model from a given payload.
|
||||||
|
/// - Parameter payload: A payload that contains the values for the model.
|
||||||
|
init(_ payload: some KeyNamePayload) {
|
||||||
self.key = payload.key
|
self.key = payload.key
|
||||||
self.name = payload.name
|
self.name = payload.name
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
//
|
//
|
||||||
// This source file is part of the Amiibo Service open source project
|
// This source file is part of the Amiibo Service open source project
|
||||||
//
|
//
|
||||||
// Copyright (c) 2025 Röck+Cöde VoF. and the Amiibo Service project authors
|
// Copyright (c) 2026 Röck+Cöde VoF. and the Amiibo Service project authors
|
||||||
// Licensed under Apache license v2.0
|
// Licensed under Apache license v2.0
|
||||||
//
|
//
|
||||||
// See LICENSE for license information
|
// See LICENSE for license information
|
||||||
@@ -15,11 +15,12 @@
|
|||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
/// A protocol that defines API clients containing all available endpoints to interact with.
|
/// A protocol that defines API clients containing all available endpoints to interact with.
|
||||||
public protocol AmiiboClient {
|
///
|
||||||
|
/// Conforming types must be `Sendable`, as clients are expected to be used safely across concurrency domains.
|
||||||
|
public protocol AmiiboClient: Sendable {
|
||||||
|
|
||||||
// MARK: Functions
|
// MARK: Functions
|
||||||
|
|
||||||
#if swift(>=6.0)
|
|
||||||
/// Gets a list of amiibo items based on a given filter.
|
/// Gets a list of amiibo items based on a given filter.
|
||||||
/// - Parameter filter: A filter to remove unwanted items from the result.
|
/// - Parameter filter: A filter to remove unwanted items from the result.
|
||||||
/// - Returns: A list of filtered amiibo items.
|
/// - Returns: A list of filtered amiibo items.
|
||||||
@@ -51,44 +52,8 @@ public protocol AmiiboClient {
|
|||||||
func getGameSeries(by filter: GameSeriesFilter) async throws(AmiiboServiceError) -> [GameSeries]
|
func getGameSeries(by filter: GameSeriesFilter) async throws(AmiiboServiceError) -> [GameSeries]
|
||||||
|
|
||||||
/// Gets the date when the data was last updated.
|
/// Gets the date when the data was last updated.
|
||||||
/// - Returns: A last updated date.
|
/// - Returns: A last updated date, decoded as UTC.
|
||||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
||||||
func getLastUpdated() async throws(AmiiboServiceError) -> Date
|
func getLastUpdated() async throws(AmiiboServiceError) -> Date
|
||||||
#else
|
|
||||||
/// Gets a list of amiibo items based on a given filter.
|
|
||||||
/// - Parameter filter: A filter to remove unwanted items from the result.
|
|
||||||
/// - Returns: A list of filtered amiibo items.
|
|
||||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
|
||||||
func getAmiibos(by filter: AmiiboFilter) async throws -> [Amiibo]
|
|
||||||
|
|
||||||
/// Gets a list of amiibo series based on a given filter.
|
|
||||||
/// - Parameter filter: A filter to remove unwanted items from the result.
|
|
||||||
/// - Returns: A list of filtered amiibo series.
|
|
||||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
|
||||||
func getAmiiboSeries(by filter: AmiiboSeriesFilter) async throws -> [AmiiboSeries]
|
|
||||||
|
|
||||||
/// Gets a list of amiibo types based on a given filter.
|
|
||||||
/// - Parameter filter: A filter to remove unwanted items from the result.
|
|
||||||
/// - Returns: A list of filtered amiibo types.
|
|
||||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
|
||||||
func getAmiiboTypes(by filter: AmiiboTypeFilter) async throws -> [AmiiboType]
|
|
||||||
|
|
||||||
/// Gets a list of game characters based on a given filter.
|
|
||||||
/// - Parameter filter: A filter to remove unwanted items from the result.
|
|
||||||
/// - Returns: A list of filtered game characters.
|
|
||||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
|
||||||
func getGameCharacters(by filter: GameCharacterFilter) async throws -> [GameCharacter]
|
|
||||||
|
|
||||||
/// Gets a list of game series based on a given filter.
|
|
||||||
/// - Parameter filter: A filter to remove unwanted items from the result.
|
|
||||||
/// - Returns: A list of filtered game series.
|
|
||||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
|
||||||
func getGameSeries(by filter: GameSeriesFilter) async throws -> [GameSeries]
|
|
||||||
|
|
||||||
/// Gets the date when the data was last updated.
|
|
||||||
/// - Returns: A last updated date.
|
|
||||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
|
||||||
func getLastUpdated() async throws -> Date
|
|
||||||
#endif
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
//
|
//
|
||||||
// This source file is part of the Amiibo Service open source project
|
// This source file is part of the Amiibo Service open source project
|
||||||
//
|
//
|
||||||
// Copyright (c) 2025 Röck+Cöde VoF. and the Amiibo Service project authors
|
// Copyright (c) 2026 Röck+Cöde VoF. and the Amiibo Service project authors
|
||||||
// Licensed under Apache license v2.0
|
// Licensed under Apache license v2.0
|
||||||
//
|
//
|
||||||
// See LICENSE for license information
|
// See LICENSE for license information
|
||||||
@@ -15,7 +15,9 @@
|
|||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
/// A type that implements the service that uses a client to make calls.
|
/// A type that implements the service that uses a client to make calls.
|
||||||
public struct AmiiboService {
|
///
|
||||||
|
/// This service forwards every call to the ``AmiiboClient`` client injected during initialization, which defaults to an ``AmiiboLiveClient`` instance. This type is `Sendable`, so an instance can be safely shared across concurrency domains.
|
||||||
|
public struct AmiiboService: Sendable {
|
||||||
|
|
||||||
// MARK: Properties
|
// MARK: Properties
|
||||||
|
|
||||||
@@ -32,7 +34,6 @@ public struct AmiiboService {
|
|||||||
|
|
||||||
// MARK: Functions
|
// MARK: Functions
|
||||||
|
|
||||||
#if swift(>=6.0)
|
|
||||||
/// Gets a list of amiibo items based on a given filter.
|
/// Gets a list of amiibo items based on a given filter.
|
||||||
/// - Parameter filter: A filter to remove unwanted items from the result.
|
/// - Parameter filter: A filter to remove unwanted items from the result.
|
||||||
/// - Returns: A list of filtered amiibo items.
|
/// - Returns: A list of filtered amiibo items.
|
||||||
@@ -84,68 +85,10 @@ public struct AmiiboService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Gets the date when the data was last updated.
|
/// Gets the date when the data was last updated.
|
||||||
/// - Returns: A last updated date.
|
/// - Returns: A last updated date, decoded as UTC.
|
||||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
||||||
public func getLastUpdated() async throws(AmiiboServiceError) -> Date {
|
public func getLastUpdated() async throws(AmiiboServiceError) -> Date {
|
||||||
try await client.getLastUpdated()
|
try await client.getLastUpdated()
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
/// Gets a list of amiibo items based on a given filter.
|
|
||||||
/// - Parameter filter: A filter to remove unwanted items from the result.
|
|
||||||
/// - Returns: A list of filtered amiibo items.
|
|
||||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
|
||||||
public func getAmiibos(
|
|
||||||
_ filter: AmiiboFilter = .init()
|
|
||||||
) async throws -> [Amiibo] {
|
|
||||||
try await client.getAmiibos(by: filter)
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Gets a list of amiibo series based on a given filter.
|
|
||||||
/// - Parameter filter: A filter to remove unwanted items from the result.
|
|
||||||
/// - Returns: A list of filtered amiibo series.
|
|
||||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
|
||||||
public func getAmiiboSeries(
|
|
||||||
_ filter: AmiiboSeriesFilter = .init()
|
|
||||||
) async throws -> [AmiiboSeries] {
|
|
||||||
try await client.getAmiiboSeries(by: filter)
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Gets a list of amiibo types based on a given filter.
|
|
||||||
/// - Parameter filter: A filter to remove unwanted items from the result.
|
|
||||||
/// - Returns: A list of filtered amiibo types.
|
|
||||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
|
||||||
public func getAmiiboTypes(
|
|
||||||
_ filter: AmiiboTypeFilter = .init()
|
|
||||||
) async throws -> [AmiiboType] {
|
|
||||||
try await client.getAmiiboTypes(by: filter)
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Gets a list of game characters based on a given filter.
|
|
||||||
/// - Parameter filter: A filter to remove unwanted items from the result.
|
|
||||||
/// - Returns: A list of filtered game characters.
|
|
||||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
|
||||||
public func getGameCharacters(
|
|
||||||
_ filter: GameCharacterFilter = .init()
|
|
||||||
) async throws -> [GameCharacter] {
|
|
||||||
try await client.getGameCharacters(by: filter)
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Gets a list of game series based on a given filter.
|
|
||||||
/// - Parameter filter: A filter to remove unwanted items from the result.
|
|
||||||
/// - Returns: A list of filtered game series.
|
|
||||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
|
||||||
public func getGameSeries(
|
|
||||||
_ filter: GameSeriesFilter = .init()
|
|
||||||
) async throws -> [GameSeries] {
|
|
||||||
try await client.getGameSeries(by: filter)
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Gets the date when the data was last updated.
|
|
||||||
/// - Returns: A last updated date.
|
|
||||||
/// - Throws: An ``AmiiboServiceError`` error in case some issue is encountered while generating the result.
|
|
||||||
public func getLastUpdated() async throws -> Date {
|
|
||||||
try await client.getLastUpdated()
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
##
|
##
|
||||||
## This source file is part of the Amiibo Service open source project
|
## This source file is part of the Amiibo Service open source project
|
||||||
##
|
##
|
||||||
## Copyright (c) 2025 Röck+Cöde VoF. and the Amiibo Service project authors
|
## Copyright (c) 2026 Röck+Cöde VoF. and the Amiibo Service project authors
|
||||||
## Licensed under Apache license v2.0
|
## Licensed under Apache license v2.0
|
||||||
##
|
##
|
||||||
## See LICENSE for license information
|
## See LICENSE for license information
|
||||||
|
|||||||
+175
-137
@@ -2,7 +2,7 @@
|
|||||||
##
|
##
|
||||||
## This source file is part of the Amiibo Service open source project
|
## This source file is part of the Amiibo Service open source project
|
||||||
##
|
##
|
||||||
## Copyright (c) 2025 Röck+Cöde VoF. and the Amiibo Service project authors
|
## Copyright (c) 2026 Röck+Cöde VoF. and the Amiibo Service project authors
|
||||||
## Licensed under Apache license v2.0
|
## Licensed under Apache license v2.0
|
||||||
##
|
##
|
||||||
## See LICENSE for license information
|
## See LICENSE for license information
|
||||||
@@ -19,7 +19,7 @@ info:
|
|||||||
description: |
|
description: |
|
||||||
# Information
|
# Information
|
||||||
|
|
||||||
The [AmiiboAPI](https://www.amiiboapi.com) service is primarily used for educational purposes.
|
The [AmiiboAPI](https://www.amiiboapi.org) service is primarily used for educational purposes.
|
||||||
|
|
||||||
This is a **reading-only API**. Only HTTP GET method is allowed by this API.
|
This is a **reading-only API**. Only HTTP GET method is allowed by this API.
|
||||||
**No authentication** is required to use this API. All resources are allowed to access.
|
**No authentication** is required to use this API. All resources are allowed to access.
|
||||||
@@ -35,19 +35,19 @@ info:
|
|||||||
* *You will require your end users to comply with (and not knowingly enable them to violate) applicable law, regulation, and the Terms.*
|
* *You will require your end users to comply with (and not knowingly enable them to violate) applicable law, regulation, and the Terms.*
|
||||||
* *You will comply with all applicable law, regulation, and third party rights (including without limitation laws regarding the import or export of data or software, privacy, and local laws). You will not use the APIs to encourage or promote illegal activity or violation of third party rights.*
|
* *You will comply with all applicable law, regulation, and third party rights (including without limitation laws regarding the import or export of data or software, privacy, and local laws). You will not use the APIs to encourage or promote illegal activity or violation of third party rights.*
|
||||||
* *These Terms and Conditions are subject to change without notice, from time to time in our sole discretion.*
|
* *These Terms and Conditions are subject to change without notice, from time to time in our sole discretion.*
|
||||||
version: v1.0.0
|
version: 1.0.0
|
||||||
termsOfService: https://www.amiiboapi.com/docs/#termscondition
|
termsOfService: https://www.amiiboapi.org/docs/#termscondition
|
||||||
contact:
|
contact:
|
||||||
name: FAQ
|
name: FAQ
|
||||||
url: https://www.amiiboapi.com/faq/
|
url: https://www.amiiboapi.org/faq/
|
||||||
license:
|
license:
|
||||||
name: MIT license
|
name: MIT license
|
||||||
identifier: MIT
|
identifier: MIT
|
||||||
externalDocs:
|
externalDocs:
|
||||||
url: https://www.amiiboapi.com/docs
|
url: https://www.amiiboapi.org/docs
|
||||||
description: Amiibo API documentation
|
description: Amiibo API documentation
|
||||||
servers:
|
servers:
|
||||||
- url: https://www.amiiboapi.com/api
|
- url: https://www.amiiboapi.org/api
|
||||||
description: Live service
|
description: Live service
|
||||||
tags:
|
tags:
|
||||||
- name: Amiibo
|
- name: Amiibo
|
||||||
@@ -61,9 +61,9 @@ paths:
|
|||||||
get:
|
get:
|
||||||
summary: Get a list of amiibos.
|
summary: Get a list of amiibos.
|
||||||
description: |
|
description: |
|
||||||
Get a list of all the Amiibo items available in the database.
|
Get a list of all the amiibo items available in the database, optionally filtered by various criteria such as name, type, series, or game.
|
||||||
|
|
||||||
Please refer to [the documentation of the endpoint](https://www.amiiboapi.com/docs/#amiibo) for further information.
|
Please refer to [the documentation of the endpoint](https://www.amiiboapi.org/docs/#amiibo) for further information.
|
||||||
operationId: getAmiibos
|
operationId: getAmiibos
|
||||||
tags:
|
tags:
|
||||||
- Amiibo
|
- Amiibo
|
||||||
@@ -81,7 +81,7 @@ paths:
|
|||||||
- $ref: '#/components/parameters/ShowUsage'
|
- $ref: '#/components/parameters/ShowUsage'
|
||||||
responses:
|
responses:
|
||||||
'200':
|
'200':
|
||||||
description: Successful response returning an object that contains none, one or more amiibos.
|
description: Successful response returning an object that contains zero, one or more amiibos matching the filter criteria.
|
||||||
content:
|
content:
|
||||||
application/json:
|
application/json:
|
||||||
schema:
|
schema:
|
||||||
@@ -91,25 +91,25 @@ paths:
|
|||||||
'404':
|
'404':
|
||||||
$ref: '#/components/responses/NotFound'
|
$ref: '#/components/responses/NotFound'
|
||||||
'500':
|
'500':
|
||||||
description: Service is not available.
|
$ref: '#/components/responses/InternalServerError'
|
||||||
/amiiboseries:
|
/amiiboseries:
|
||||||
get:
|
get:
|
||||||
tags:
|
tags:
|
||||||
- Amiibo
|
- Amiibo
|
||||||
summary: Get the amiibo series.
|
summary: Get the amiibo series.
|
||||||
description: |
|
description: |
|
||||||
Get a list of all the Amiibo series available in the database.
|
Get a list of all the amiibo series available in the database, optionally filtered by key or name.
|
||||||
|
|
||||||
Please refer to [the documentation of the endpoint](https://www.amiiboapi.com/docs/#series) for further information.
|
Please refer to [the documentation of the endpoint](https://www.amiiboapi.org/docs/#series) for further information.
|
||||||
operationId: getAmiiboSeries
|
operationId: getAmiiboSeries
|
||||||
parameters:
|
parameters:
|
||||||
- $ref: '#/components/parameters/Key'
|
- $ref: '#/components/parameters/Key'
|
||||||
description: A key of an amiibo series to include in the response.
|
description: A key of an amiibo series to include in the response.
|
||||||
- $ref: '#/components/parameters/Name'
|
- $ref: '#/components/parameters/Name'
|
||||||
description: A name of an amiibo series key to include in the response.
|
description: A name of an amiibo series to include in the response.
|
||||||
responses:
|
responses:
|
||||||
'200':
|
'200':
|
||||||
description: Successful response returning an object that contains one or more amiibo series.
|
description: Successful response returning an object that contains one or more amiibo series matching the filter criteria.
|
||||||
content:
|
content:
|
||||||
application/json:
|
application/json:
|
||||||
schema:
|
schema:
|
||||||
@@ -119,25 +119,25 @@ paths:
|
|||||||
'404':
|
'404':
|
||||||
$ref: '#/components/responses/NotFound'
|
$ref: '#/components/responses/NotFound'
|
||||||
'500':
|
'500':
|
||||||
description: Service is not available.
|
$ref: '#/components/responses/InternalServerError'
|
||||||
/character:
|
/character:
|
||||||
get:
|
get:
|
||||||
tags:
|
tags:
|
||||||
- Game
|
- Game
|
||||||
summary: Get the game characters.
|
summary: Get the game characters.
|
||||||
description: |
|
description: |
|
||||||
Get a list of all the game characters available in the database.
|
Get a list of all the game characters available in the database, optionally filtered by key or name.
|
||||||
|
|
||||||
Please refer to [the documentation of the endpoint](https://www.amiiboapi.com/docs/#character) for further information.
|
Please refer to [the documentation of the endpoint](https://www.amiiboapi.org/docs/#character) for further information.
|
||||||
operationId: getGameCharacters
|
operationId: getGameCharacters
|
||||||
parameters:
|
parameters:
|
||||||
- $ref: '#/components/parameters/Key'
|
- $ref: '#/components/parameters/Key'
|
||||||
description: A key of a game character key to include in the response.
|
description: A key of a game character to include in the response.
|
||||||
- $ref: '#/components/parameters/Name'
|
- $ref: '#/components/parameters/Name'
|
||||||
description: A name of a game character key to include in the response.
|
description: A name of a game character to include in the response.
|
||||||
responses:
|
responses:
|
||||||
'200':
|
'200':
|
||||||
description: Successful response returning an object that contains one or more game characters.
|
description: Successful response returning an object that contains one or more game characters matching the filter criteria.
|
||||||
content:
|
content:
|
||||||
application/json:
|
application/json:
|
||||||
schema:
|
schema:
|
||||||
@@ -147,16 +147,16 @@ paths:
|
|||||||
'404':
|
'404':
|
||||||
$ref: '#/components/responses/NotFound'
|
$ref: '#/components/responses/NotFound'
|
||||||
'500':
|
'500':
|
||||||
description: Service is not available.
|
$ref: '#/components/responses/InternalServerError'
|
||||||
/gameseries:
|
/gameseries:
|
||||||
get:
|
get:
|
||||||
tags:
|
tags:
|
||||||
- Game
|
- Game
|
||||||
summary: Get the game series.
|
summary: Get the game series.
|
||||||
description: |
|
description: |
|
||||||
Gets a list of all the Game series available in the database.
|
Get a list of all the game series available in the database, optionally filtered by key or name.
|
||||||
|
|
||||||
Please refer to [the documentation of the endpoint](https://www.amiiboapi.com/docs/#gameSeries) for further information.
|
Please refer to [the documentation of the endpoint](https://www.amiiboapi.org/docs/#gameSeries) for further information.
|
||||||
operationId: getGameSeries
|
operationId: getGameSeries
|
||||||
parameters:
|
parameters:
|
||||||
- $ref: '#/components/parameters/Key'
|
- $ref: '#/components/parameters/Key'
|
||||||
@@ -165,7 +165,7 @@ paths:
|
|||||||
description: A name of a game series to include in the response.
|
description: A name of a game series to include in the response.
|
||||||
responses:
|
responses:
|
||||||
'200':
|
'200':
|
||||||
description: Successful response returning an object that contains one or more game series.
|
description: Successful response returning an object that contains one or more game series matching the filter criteria.
|
||||||
content:
|
content:
|
||||||
application/json:
|
application/json:
|
||||||
schema:
|
schema:
|
||||||
@@ -175,16 +175,16 @@ paths:
|
|||||||
'404':
|
'404':
|
||||||
$ref: '#/components/responses/NotFound'
|
$ref: '#/components/responses/NotFound'
|
||||||
'500':
|
'500':
|
||||||
description: Service is not available.
|
$ref: '#/components/responses/InternalServerError'
|
||||||
/type:
|
/type:
|
||||||
get:
|
get:
|
||||||
tags:
|
tags:
|
||||||
- Amiibo
|
- Amiibo
|
||||||
summary: Get the amiibo types.
|
summary: Get the amiibo types.
|
||||||
description: |
|
description: |
|
||||||
Gets a list of all the amiibo types available in the database.
|
Get a list of all the amiibo types available in the database, optionally filtered by key or name.
|
||||||
|
|
||||||
Please refer to [the documentation of the endpoint](https://www.amiiboapi.com/docs/#type) for further information.
|
Please refer to [the documentation of the endpoint](https://www.amiiboapi.org/docs/#type) for further information.
|
||||||
operationId: getAmiiboTypes
|
operationId: getAmiiboTypes
|
||||||
parameters:
|
parameters:
|
||||||
- $ref: '#/components/parameters/Key'
|
- $ref: '#/components/parameters/Key'
|
||||||
@@ -193,7 +193,7 @@ paths:
|
|||||||
description: A name of an amiibo type to include in the response.
|
description: A name of an amiibo type to include in the response.
|
||||||
responses:
|
responses:
|
||||||
'200':
|
'200':
|
||||||
description: Successful response returning an object that contains one or more amiibo types.
|
description: Successful response returning an object that contains one or more amiibo types matching the filter criteria.
|
||||||
content:
|
content:
|
||||||
application/json:
|
application/json:
|
||||||
schema:
|
schema:
|
||||||
@@ -203,89 +203,97 @@ paths:
|
|||||||
'404':
|
'404':
|
||||||
$ref: '#/components/responses/NotFound'
|
$ref: '#/components/responses/NotFound'
|
||||||
'500':
|
'500':
|
||||||
description: Service is not available.
|
$ref: '#/components/responses/InternalServerError'
|
||||||
/lastupdated:
|
/lastupdated:
|
||||||
get:
|
get:
|
||||||
tags:
|
tags:
|
||||||
- Service
|
- Service
|
||||||
summary: Get the date of last updated.
|
summary: Get the date when data was last updated.
|
||||||
description: |
|
description: |
|
||||||
Gets an ISO-formatted date+time when the Amiibo data was last updated.
|
Get an ISO-formatted date and time when the amiibo data was last updated.
|
||||||
|
|
||||||
Please refer to [the documentation of the endpoint](https://www.amiiboapi.com/docs/#lastUpdated) for further information.
|
Please refer to [the documentation of the endpoint](https://www.amiiboapi.org/docs/#lastUpdated) for further information.
|
||||||
operationId: getLastUpdated
|
operationId: getLastUpdated
|
||||||
responses:
|
responses:
|
||||||
'200':
|
'200':
|
||||||
description: Successful response returning an object that contains a date and time when the database was last updated.
|
description: Successful response returning an object that contains the date and time when the database was last updated.
|
||||||
content:
|
content:
|
||||||
application/json:
|
application/json:
|
||||||
schema:
|
schema:
|
||||||
$ref: '#/components/schemas/LastUpdated'
|
$ref: '#/components/schemas/LastUpdated'
|
||||||
'500':
|
'500':
|
||||||
description: Service is not available.
|
$ref: '#/components/responses/InternalServerError'
|
||||||
components:
|
components:
|
||||||
parameters:
|
parameters:
|
||||||
AmiiboSeries:
|
AmiiboSeries:
|
||||||
description: An identifier or name of an amiibo series to include in the response
|
description: A hexadecimal key or name of an amiibo series to include in the response.
|
||||||
name: amiiboSeries
|
name: amiiboSeries
|
||||||
in: query
|
in: query
|
||||||
required: false
|
required: false
|
||||||
schema:
|
schema:
|
||||||
type: string
|
type: string
|
||||||
AmiiboType:
|
AmiiboType:
|
||||||
description: An identifier or a name of an amiibo type to inclulde in the response.
|
description: A hexadecimal key or name of an amiibo type to include in the response.
|
||||||
name: type
|
name: type
|
||||||
in: query
|
in: query
|
||||||
required: false
|
required: false
|
||||||
schema:
|
schema:
|
||||||
type: string
|
type: string
|
||||||
GameCharacter:
|
GameCharacter:
|
||||||
description: An identifier or name of a game character to include in the response.
|
description: A hexadecimal key or name of a game character to include in the response.
|
||||||
name: character
|
name: character
|
||||||
in: query
|
in: query
|
||||||
required: false
|
required: false
|
||||||
schema:
|
schema:
|
||||||
type: string
|
type: string
|
||||||
GameSeries:
|
GameSeries:
|
||||||
description: An identifier or name of a game series to include in the response.
|
description: A hexadecimal key or name of a game series to include in the response.
|
||||||
name: gameseries
|
name: gameseries
|
||||||
in: query
|
in: query
|
||||||
required: false
|
required: false
|
||||||
schema:
|
schema:
|
||||||
type: string
|
type: string
|
||||||
Identifier:
|
Identifier:
|
||||||
description: An identifier of an amiibo to include in the response.
|
description: The full 16-character hexadecimal identifier of an amiibo to include in the response, with an optional `0x` prefix. An empty value is rejected with a `400` response.
|
||||||
name: id
|
name: id
|
||||||
in: query
|
in: query
|
||||||
required: false
|
required: false
|
||||||
schema:
|
schema:
|
||||||
type: string
|
type: string
|
||||||
|
pattern: "^(0x)?[0-9a-fA-F]{16}$"
|
||||||
|
minLength: 16
|
||||||
maxLength: 18
|
maxLength: 18
|
||||||
IdentifierHead:
|
IdentifierHead:
|
||||||
description: A first part for an identifier of an amiibo to include the response.
|
description: The first 8 hexadecimal characters of an amiibo identifier to include in the response, with an optional `0x` prefix. A shorter value matches as a prefix, while an empty value is rejected with a `400` response.
|
||||||
name: head
|
name: head
|
||||||
in: query
|
in: query
|
||||||
required: false
|
required: false
|
||||||
schema:
|
schema:
|
||||||
type: string
|
type: string
|
||||||
|
pattern: "^(0x)?[0-9a-fA-F]+$"
|
||||||
|
minLength: 1
|
||||||
maxLength: 10
|
maxLength: 10
|
||||||
IdentifierTail:
|
IdentifierTail:
|
||||||
description: A last part for an identifier of an amiibo to include the response.
|
description: The last 8 hexadecimal characters of an amiibo identifier to include in the response, with an optional `0x` prefix. A shorter value matches as a prefix, while an empty value is rejected with a `400` response.
|
||||||
name: tail
|
name: tail
|
||||||
in: query
|
in: query
|
||||||
required: false
|
required: false
|
||||||
schema:
|
schema:
|
||||||
type: string
|
type: string
|
||||||
|
pattern: "^(0x)?[0-9a-fA-F]+$"
|
||||||
|
minLength: 1
|
||||||
maxLength: 10
|
maxLength: 10
|
||||||
Key:
|
Key:
|
||||||
description: A key of a type to include in the response.
|
description: A hexadecimal key to filter the results by, in the `0x`-prefixed format used by the `key` property of the resources. A value without hexadecimal digits after the prefix, or an empty value, is rejected with a `400` response.
|
||||||
name: key
|
name: key
|
||||||
in: query
|
in: query
|
||||||
required: false
|
required: false
|
||||||
schema:
|
schema:
|
||||||
type: string
|
type: string
|
||||||
|
pattern: "^0x[0-9a-fA-F]+$"
|
||||||
|
minLength: 3
|
||||||
Name:
|
Name:
|
||||||
description: A name of a type to include in the response.
|
description: A name to filter the results by.
|
||||||
name: name
|
name: name
|
||||||
in: query
|
in: query
|
||||||
required: false
|
required: false
|
||||||
@@ -307,13 +315,15 @@ components:
|
|||||||
type: boolean
|
type: boolean
|
||||||
responses:
|
responses:
|
||||||
BadRequest:
|
BadRequest:
|
||||||
description: One or more incorrect parameters have been sent.
|
description: The request was malformed or contained invalid parameters.
|
||||||
content:
|
content:
|
||||||
application/json:
|
application/json:
|
||||||
schema:
|
schema:
|
||||||
$ref: '#/components/schemas/ServiceError'
|
$ref: '#/components/schemas/ServiceError'
|
||||||
|
InternalServerError:
|
||||||
|
description: The service is currently unavailable.
|
||||||
NotFound:
|
NotFound:
|
||||||
description: No resource has been found.
|
description: No results were found matching the given filter criteria.
|
||||||
content:
|
content:
|
||||||
application/json:
|
application/json:
|
||||||
schema:
|
schema:
|
||||||
@@ -321,20 +331,20 @@ components:
|
|||||||
schemas:
|
schemas:
|
||||||
# Core Entities
|
# Core Entities
|
||||||
Amiibo:
|
Amiibo:
|
||||||
description: A type that represents an amiibo.
|
description: A type that represents an amiibo figurine, card, or other collectible.
|
||||||
type: object
|
type: object
|
||||||
properties:
|
properties:
|
||||||
amiiboSeries:
|
amiiboSeries:
|
||||||
description: A name of a series an amiibo belongs to.
|
description: The name of the amiibo series this amiibo belongs to.
|
||||||
type: string
|
type: string
|
||||||
character:
|
character:
|
||||||
description: |
|
description: |
|
||||||
A name of a character of an amiibo.
|
The name of the game character associated with this amiibo.
|
||||||
|
|
||||||
Multiple character have different amiibo design.
|
Multiple characters can have different amiibo designs.
|
||||||
type: string
|
type: string
|
||||||
gameSeries:
|
gameSeries:
|
||||||
description: A name of a game series an amiibo belongs to.
|
description: The name of the game series associated with this amiibo.
|
||||||
type: string
|
type: string
|
||||||
games3DS:
|
games3DS:
|
||||||
description: A list of 3DS games an amiibo could be used in, if any.
|
description: A list of 3DS games an amiibo could be used in, if any.
|
||||||
@@ -346,6 +356,11 @@ components:
|
|||||||
type: array
|
type: array
|
||||||
items:
|
items:
|
||||||
$ref: '#/components/schemas/AmiiboGame'
|
$ref: '#/components/schemas/AmiiboGame'
|
||||||
|
gamesSwitch2:
|
||||||
|
description: A list of Switch 2 games an amiibo could be used in, if any.
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
$ref: '#/components/schemas/AmiiboGame'
|
||||||
gamesWiiU:
|
gamesWiiU:
|
||||||
description: A list of Wii U games an amiibo could be used in, if any.
|
description: A list of Wii U games an amiibo could be used in, if any.
|
||||||
type: array
|
type: array
|
||||||
@@ -357,16 +372,16 @@ components:
|
|||||||
|
|
||||||
The positions 0 to 7 of the hexadecimal string.
|
The positions 0 to 7 of the hexadecimal string.
|
||||||
type: string
|
type: string
|
||||||
maxLength: 8
|
pattern: "^[0-9a-fA-F]{8}$"
|
||||||
image:
|
image:
|
||||||
description: An image URL related to an amiibo.
|
description: A URL pointing to an image of this amiibo.
|
||||||
type: string
|
type: string
|
||||||
format: uri
|
format: uri
|
||||||
name:
|
name:
|
||||||
description: A name of an Amiibo.
|
description: The name of this amiibo.
|
||||||
type: string
|
type: string
|
||||||
release:
|
release:
|
||||||
description: A type that contains the release dates of an amiibo, if any.
|
description: The regional release dates of this amiibo, if known.
|
||||||
$ref: '#/components/schemas/AmiiboRelease'
|
$ref: '#/components/schemas/AmiiboRelease'
|
||||||
tail:
|
tail:
|
||||||
description: |
|
description: |
|
||||||
@@ -374,9 +389,9 @@ components:
|
|||||||
|
|
||||||
The positions 8 to 15 of the hexadecimal string.
|
The positions 8 to 15 of the hexadecimal string.
|
||||||
type: string
|
type: string
|
||||||
maxLength: 8
|
pattern: "^[0-9a-fA-F]{8}$"
|
||||||
type:
|
type:
|
||||||
description: A name for the type an amiibo belongs to.
|
description: The type of this amiibo (e.g., Figure, Card, Yarn, Band).
|
||||||
type: string
|
type: string
|
||||||
required:
|
required:
|
||||||
- amiiboSeries
|
- amiiboSeries
|
||||||
@@ -389,100 +404,126 @@ components:
|
|||||||
- tail
|
- tail
|
||||||
- type
|
- type
|
||||||
AmiiboGame:
|
AmiiboGame:
|
||||||
description: A type that represents a game in which an amiibo is related to.
|
description: A type that represents a game in which an amiibo can be used.
|
||||||
type: object
|
type: object
|
||||||
properties:
|
properties:
|
||||||
amiiboUsage:
|
amiiboUsage:
|
||||||
description: A list of available usages an amiibo have in a game, if any.
|
description: A list of available usages an amiibo has in a game, if any.
|
||||||
type: array
|
type: array
|
||||||
items:
|
items:
|
||||||
$ref: '#/components/schemas/AmiiboUsage'
|
$ref: '#/components/schemas/AmiiboUsage'
|
||||||
gameID:
|
gameID:
|
||||||
description: A list of identifiers of a game an amiibo is related to.
|
description: A list of identifiers for the game.
|
||||||
type: array
|
type: array
|
||||||
items:
|
items:
|
||||||
type: string
|
type: string
|
||||||
gameName:
|
gameName:
|
||||||
description: A name of a game an amiibo is related to.
|
description: The name of the game.
|
||||||
type: string
|
type: string
|
||||||
required:
|
required:
|
||||||
- gameID
|
- gameID
|
||||||
- gameName
|
- gameName
|
||||||
AmiiboRelease:
|
AmiiboRelease:
|
||||||
description: A type that contains the release dates of an amiibo throughout the world.
|
description: |
|
||||||
|
A type that contains the regional release dates of an amiibo.
|
||||||
|
|
||||||
|
Note: The service returns these dates as date-only strings (`yyyy-MM-dd`) without a time component, even though the properties declare the `date-time` format. The `date-time` format is kept deliberately so the generated code produces `Date` values, and the date-only strings are decoded by the custom transcoder configured in the live client, which interprets them as midnight UTC.
|
||||||
type: object
|
type: object
|
||||||
properties:
|
properties:
|
||||||
au:
|
au:
|
||||||
description: A release date for Australia, if any.
|
description: The release date in Australia, if known.
|
||||||
type: string
|
type: string
|
||||||
format: date-time
|
format: date-time
|
||||||
eu:
|
eu:
|
||||||
description: A release date for Europe, if any.
|
description: The release date in Europe, if known.
|
||||||
type: string
|
type: string
|
||||||
format: date-time
|
format: date-time
|
||||||
jp:
|
jp:
|
||||||
description: A release date for Japan, if any.
|
description: The release date in Japan, if known.
|
||||||
type: string
|
type: string
|
||||||
format: date-time
|
format: date-time
|
||||||
na:
|
na:
|
||||||
description: A release date for North America, if any.
|
description: The release date in North America, if known.
|
||||||
type: string
|
type: string
|
||||||
format: date-time
|
format: date-time
|
||||||
AmiiboSeries:
|
AmiiboSeries:
|
||||||
description: A type that represents an amiibo series.
|
description: A type that represents an amiibo series.
|
||||||
allOf:
|
type: object
|
||||||
- $ref: '#/components/schemas/Tuple'
|
properties:
|
||||||
- type: object
|
key:
|
||||||
properties:
|
description: The hexadecimal key that uniquely identifies this amiibo series.
|
||||||
key:
|
type: string
|
||||||
description: A key of an amiibo series.
|
pattern: "^0x[0-9a-fA-F]+$"
|
||||||
name:
|
minLength: 3
|
||||||
description: A name of an amiibo series.
|
name:
|
||||||
|
description: The name of this amiibo series.
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- key
|
||||||
|
- name
|
||||||
AmiiboType:
|
AmiiboType:
|
||||||
description: A type that represents an amiibo type.
|
description: A type that represents an amiibo type (e.g., Figure, Card, Yarn, Band).
|
||||||
allOf:
|
type: object
|
||||||
- $ref: '#/components/schemas/Tuple'
|
properties:
|
||||||
- type: object
|
key:
|
||||||
properties:
|
description: The hexadecimal key that uniquely identifies this amiibo type.
|
||||||
key:
|
type: string
|
||||||
description: A key of an amiibo type.
|
pattern: "^0x[0-9a-fA-F]+$"
|
||||||
name:
|
minLength: 3
|
||||||
description: A name of an amiibo type.
|
name:
|
||||||
|
description: The name of this amiibo type.
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- key
|
||||||
|
- name
|
||||||
AmiiboUsage:
|
AmiiboUsage:
|
||||||
description: A type that represents a use of an amiibo in a game.
|
description: A type that represents how an amiibo is used within a game.
|
||||||
type: object
|
type: object
|
||||||
properties:
|
properties:
|
||||||
Usage:
|
Usage:
|
||||||
description: An explanation of the usage of an amiibo in a game.
|
description: A description of how the amiibo is used within the game.
|
||||||
type: string
|
type: string
|
||||||
write:
|
write:
|
||||||
description: A flag that indicates whether the data in an amiibo is writable or not.
|
description: A flag that indicates whether the amiibo can save game data.
|
||||||
type: boolean
|
type: boolean
|
||||||
required:
|
required:
|
||||||
- Usage
|
- Usage
|
||||||
- write
|
- write
|
||||||
GameCharacter:
|
GameCharacter:
|
||||||
description: A type that represents a game character.
|
description: A type that represents a game character.
|
||||||
allOf:
|
type: object
|
||||||
- $ref: '#/components/schemas/Tuple'
|
properties:
|
||||||
- type: object
|
key:
|
||||||
properties:
|
description: The hexadecimal key that uniquely identifies this game character.
|
||||||
key:
|
type: string
|
||||||
description: A key of a game character.
|
pattern: "^0x[0-9a-fA-F]+$"
|
||||||
name:
|
minLength: 3
|
||||||
description: A name of a game character.
|
name:
|
||||||
|
description: The name of this game character.
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- key
|
||||||
|
- name
|
||||||
GameSeries:
|
GameSeries:
|
||||||
description: A type that represents a game series.
|
description: A type that represents a game series.
|
||||||
allOf:
|
type: object
|
||||||
- $ref: '#/components/schemas/Tuple'
|
properties:
|
||||||
- type: object
|
key:
|
||||||
properties:
|
description: The hexadecimal key that uniquely identifies this game series.
|
||||||
key:
|
type: string
|
||||||
description: A key of a game series.
|
pattern: "^0x[0-9a-fA-F]+$"
|
||||||
name:
|
minLength: 3
|
||||||
description: A name of a game series.
|
name:
|
||||||
|
description: The name of this game series.
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- key
|
||||||
|
- name
|
||||||
LastUpdated:
|
LastUpdated:
|
||||||
description: A type that informs when the data in the service was last updated.
|
description: |
|
||||||
|
A type that contains the date and time when the service data was last updated.
|
||||||
|
|
||||||
|
Note: The service returns this timestamp in the `yyyy-MM-dd'T'HH:mm:ss.SSSSSS` format without a timezone offset, so it is not a strictly valid RFC 3339 `date-time` value. The `date-time` format is kept deliberately so the generated code produces a `Date` value, and the timestamp is decoded by the custom transcoder configured in the live client, which interprets it as UTC.
|
||||||
type: object
|
type: object
|
||||||
properties:
|
properties:
|
||||||
lastUpdated:
|
lastUpdated:
|
||||||
@@ -491,112 +532,109 @@ components:
|
|||||||
format: date-time
|
format: date-time
|
||||||
required:
|
required:
|
||||||
- lastUpdated
|
- lastUpdated
|
||||||
Tuple:
|
|
||||||
description: |
|
|
||||||
A type that is conformed only by the `key` and `name` properties.
|
|
||||||
|
|
||||||
This type represents either `AmiiboSeries`, `AmiiboType`, `GameCharacter`, and `GameSeries` types.
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
key:
|
|
||||||
description: A key assigned to a tuple.
|
|
||||||
type: string
|
|
||||||
name:
|
|
||||||
description: A name assigned to a tuple.
|
|
||||||
type: string
|
|
||||||
required:
|
|
||||||
- key
|
|
||||||
- name
|
|
||||||
# List Entities
|
# List Entities
|
||||||
AmiiboList:
|
AmiiboList:
|
||||||
description: A type that contains a list of amiibos.
|
description: A list that contains amiibos.
|
||||||
type: array
|
type: array
|
||||||
items:
|
items:
|
||||||
$ref: '#/components/schemas/Amiibo'
|
$ref: '#/components/schemas/Amiibo'
|
||||||
AmiiboSeriesList:
|
AmiiboSeriesList:
|
||||||
description: A type that represents a list of amiibo series.
|
description: A list that contains amiibo series.
|
||||||
type: array
|
type: array
|
||||||
items:
|
items:
|
||||||
$ref: '#/components/schemas/AmiiboSeries'
|
$ref: '#/components/schemas/AmiiboSeries'
|
||||||
AmiiboTypeList:
|
AmiiboTypeList:
|
||||||
description: A type that represents a list of amiibo types.
|
description: A list that contains amiibo types.
|
||||||
type: array
|
type: array
|
||||||
items:
|
items:
|
||||||
$ref: '#/components/schemas/AmiiboType'
|
$ref: '#/components/schemas/AmiiboType'
|
||||||
GameCharacterList:
|
GameCharacterList:
|
||||||
description: A type that represents a list of game characters.
|
description: A list that contains game characters.
|
||||||
type: array
|
type: array
|
||||||
items:
|
items:
|
||||||
$ref: '#/components/schemas/GameCharacter'
|
$ref: '#/components/schemas/GameCharacter'
|
||||||
GameSeriesList:
|
GameSeriesList:
|
||||||
description: A type that represents a list of game series.
|
description: A list that contains game series.
|
||||||
type: array
|
type: array
|
||||||
items:
|
items:
|
||||||
$ref: '#/components/schemas/GameSeries'
|
$ref: '#/components/schemas/GameSeries'
|
||||||
# Wrapper Entities
|
# Wrapper Entities
|
||||||
AmiiboWrapper:
|
AmiiboWrapper:
|
||||||
description: A type that wraps either none, one or a list of amiibos.
|
description: |
|
||||||
|
A response wrapper that contains zero, one, or more amiibos.
|
||||||
|
|
||||||
|
Note: Unlike the other response wrappers, the `amiibo` property is deliberately not required: the service returns `"amiibo": null` when an `id` filter matches nothing, and an empty list when other filters match nothing. The property must therefore remain optional for decoding to succeed in both cases.
|
||||||
type: object
|
type: object
|
||||||
properties:
|
properties:
|
||||||
amiibo:
|
amiibo:
|
||||||
description: A container that have zero, one or more amiibos.
|
description: A container that holds zero, one or more amiibos.
|
||||||
oneOf:
|
oneOf:
|
||||||
- $ref: '#/components/schemas/Amiibo'
|
- $ref: '#/components/schemas/Amiibo'
|
||||||
|
description: A certain amiibo.
|
||||||
- $ref: '#/components/schemas/AmiiboList'
|
- $ref: '#/components/schemas/AmiiboList'
|
||||||
|
description: A list that contains amiibos.
|
||||||
AmiiboSeriesWrapper:
|
AmiiboSeriesWrapper:
|
||||||
description: A type that wraps either one or a list of amiibo series.
|
description: A response wrapper that contains one or more amiibo series.
|
||||||
type: object
|
type: object
|
||||||
properties:
|
properties:
|
||||||
amiibo:
|
amiibo:
|
||||||
description: A container that have one or more amiibo series.
|
description: A container that holds one or more amiibo series.
|
||||||
oneOf:
|
oneOf:
|
||||||
- $ref: '#/components/schemas/AmiiboSeries'
|
- $ref: '#/components/schemas/AmiiboSeries'
|
||||||
|
description: A certain amiibo series.
|
||||||
- $ref: '#/components/schemas/AmiiboSeriesList'
|
- $ref: '#/components/schemas/AmiiboSeriesList'
|
||||||
|
description: A list that contains amiibo series.
|
||||||
required:
|
required:
|
||||||
- amiibo
|
- amiibo
|
||||||
AmiiboTypeWrapper:
|
AmiiboTypeWrapper:
|
||||||
description: A type that wraps either one or a list of amiibo types.
|
description: A response wrapper that contains one or more amiibo types.
|
||||||
type: object
|
type: object
|
||||||
properties:
|
properties:
|
||||||
amiibo:
|
amiibo:
|
||||||
description: A container that have one or more amiibo types.
|
description: A container that holds one or more amiibo types.
|
||||||
oneOf:
|
oneOf:
|
||||||
- $ref: '#/components/schemas/AmiiboType'
|
- $ref: '#/components/schemas/AmiiboType'
|
||||||
|
description: A certain amiibo type.
|
||||||
- $ref: '#/components/schemas/AmiiboTypeList'
|
- $ref: '#/components/schemas/AmiiboTypeList'
|
||||||
|
description: A list that contains amiibo types.
|
||||||
required:
|
required:
|
||||||
- amiibo
|
- amiibo
|
||||||
GameCharacterWrapper:
|
GameCharacterWrapper:
|
||||||
description: A type that wraps either one or a list of game characters.
|
description: A response wrapper that contains one or more game characters.
|
||||||
type: object
|
type: object
|
||||||
properties:
|
properties:
|
||||||
amiibo:
|
amiibo:
|
||||||
description: A container that have one or more game characters.
|
description: A container that holds one or more game characters.
|
||||||
oneOf:
|
oneOf:
|
||||||
- $ref: '#/components/schemas/GameCharacter'
|
- $ref: '#/components/schemas/GameCharacter'
|
||||||
|
description: A certain game character.
|
||||||
- $ref: '#/components/schemas/GameCharacterList'
|
- $ref: '#/components/schemas/GameCharacterList'
|
||||||
|
description: A list that contains game characters.
|
||||||
required:
|
required:
|
||||||
- amiibo
|
- amiibo
|
||||||
GameSeriesWrapper:
|
GameSeriesWrapper:
|
||||||
description: A type that wraps either one or a list of game series.
|
description: A response wrapper that contains one or more game series.
|
||||||
type: object
|
type: object
|
||||||
properties:
|
properties:
|
||||||
amiibo:
|
amiibo:
|
||||||
description: A container that have one or more game series.
|
description: A container that holds one or more game series.
|
||||||
oneOf:
|
oneOf:
|
||||||
- $ref: '#/components/schemas/GameSeries'
|
- $ref: '#/components/schemas/GameSeries'
|
||||||
|
description: A certain game series.
|
||||||
- $ref: '#/components/schemas/GameSeriesList'
|
- $ref: '#/components/schemas/GameSeriesList'
|
||||||
|
description: A list that contains game series.
|
||||||
required:
|
required:
|
||||||
- amiibo
|
- amiibo
|
||||||
# Error Entities
|
# Error Entities
|
||||||
ServiceError:
|
ServiceError:
|
||||||
description: A type that represents an error provided by the service.
|
description: A type that represents an error response from the service.
|
||||||
type: object
|
type: object
|
||||||
properties:
|
properties:
|
||||||
code:
|
code:
|
||||||
description: A number of an error code.
|
description: The HTTP status code of the error.
|
||||||
type: integer
|
type: integer
|
||||||
error:
|
error:
|
||||||
description: An explanation of an error.
|
description: A human-readable message describing the error.
|
||||||
type: string
|
type: string
|
||||||
required:
|
required:
|
||||||
- code
|
- code
|
||||||
|
|||||||
@@ -0,0 +1,46 @@
|
|||||||
|
// ===----------------------------------------------------------------------===
|
||||||
|
//
|
||||||
|
// This source file is part of the Amiibo Service open source project
|
||||||
|
//
|
||||||
|
// Copyright (c) 2026 Röck+Cöde VoF. and the Amiibo Service project authors
|
||||||
|
// Licensed under Apache license v2.0
|
||||||
|
//
|
||||||
|
// See LICENSE for license information
|
||||||
|
// See CONTRIBUTORS for the list of Amiibo Service project authors
|
||||||
|
//
|
||||||
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
//
|
||||||
|
// ===----------------------------------------------------------------------===
|
||||||
|
|
||||||
|
@testable import AmiiboService
|
||||||
|
import Foundation
|
||||||
|
import Testing
|
||||||
|
|
||||||
|
@Suite("Amiibo Live Client")
|
||||||
|
struct AmiiboLiveClientTests {
|
||||||
|
|
||||||
|
// MARK: Server URL tests
|
||||||
|
|
||||||
|
@Test("resolves the server URL defined in the OpenAPI specification")
|
||||||
|
func serverURLResolves() throws {
|
||||||
|
// GIVEN
|
||||||
|
// WHEN
|
||||||
|
let url = try Servers.Server1.url()
|
||||||
|
|
||||||
|
// THEN
|
||||||
|
#expect(url.absoluteString == "https://www.amiiboapi.org/api")
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test("uses the server URL from the OpenAPI specification")
|
||||||
|
func serverURLMatchesSpecification() throws {
|
||||||
|
// GIVEN
|
||||||
|
let expected = try Servers.Server1.url()
|
||||||
|
|
||||||
|
// WHEN
|
||||||
|
let url = AmiiboLiveClient.serverURL
|
||||||
|
|
||||||
|
// THEN
|
||||||
|
#expect(url == expected)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
+115
-214
@@ -2,7 +2,7 @@
|
|||||||
//
|
//
|
||||||
// This source file is part of the Amiibo Service open source project
|
// This source file is part of the Amiibo Service open source project
|
||||||
//
|
//
|
||||||
// Copyright (c) 2025 Röck+Cöde VoF. and the Amiibo Service project authors
|
// Copyright (c) 2026 Röck+Cöde VoF. and the Amiibo Service project authors
|
||||||
// Licensed under Apache license v2.0
|
// Licensed under Apache license v2.0
|
||||||
//
|
//
|
||||||
// See LICENSE for license information
|
// See LICENSE for license information
|
||||||
@@ -16,7 +16,14 @@ import AmiiboService
|
|||||||
import Foundation
|
import Foundation
|
||||||
import Testing
|
import Testing
|
||||||
|
|
||||||
@Suite("Amiibo Service", .tags(.live))
|
@Suite(
|
||||||
|
"Amiibo Service",
|
||||||
|
.tags(.live),
|
||||||
|
.enabled(
|
||||||
|
if: ProcessInfo.processInfo.environment["AMIIBO_LIVE_TESTS"] == "1",
|
||||||
|
"Set the 'AMIIBO_LIVE_TESTS' environment variable to '1' to run these tests against the live service."
|
||||||
|
)
|
||||||
|
)
|
||||||
struct AmiiboServiceLiveTests {
|
struct AmiiboServiceLiveTests {
|
||||||
|
|
||||||
// MARK: Properties
|
// MARK: Properties
|
||||||
@@ -31,18 +38,17 @@ struct AmiiboServiceLiveTests {
|
|||||||
|
|
||||||
// MARK: Functions tests
|
// MARK: Functions tests
|
||||||
|
|
||||||
#if swift(>=6.2)
|
|
||||||
@Test(arguments: zip(
|
@Test(arguments: zip(
|
||||||
Input.amiibos,
|
Input.amiibos,
|
||||||
Output.amiibos
|
Output.amiibos
|
||||||
))
|
))
|
||||||
func `get amiibos`(
|
func `get amiibos`(
|
||||||
filter: AmiiboFilter,
|
filter: AmiiboFilter,
|
||||||
expects numberOfItems: Int
|
expects count: ExpectedCount
|
||||||
) async throws {
|
) async throws {
|
||||||
try await assertAmiibos(
|
try await assertAmiibos(
|
||||||
with: filter,
|
with: filter,
|
||||||
expects: numberOfItems
|
expects: count
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -66,11 +72,11 @@ struct AmiiboServiceLiveTests {
|
|||||||
))
|
))
|
||||||
func `get amiibo series`(
|
func `get amiibo series`(
|
||||||
filter: AmiiboSeriesFilter,
|
filter: AmiiboSeriesFilter,
|
||||||
expects numberOfItems: Int
|
expects count: ExpectedCount
|
||||||
) async throws {
|
) async throws {
|
||||||
try await assertAmiiboSeries(
|
try await assertAmiiboSeries(
|
||||||
with: filter,
|
with: filter,
|
||||||
expects: numberOfItems
|
expects: count
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -94,11 +100,11 @@ struct AmiiboServiceLiveTests {
|
|||||||
))
|
))
|
||||||
func `get amiibo types`(
|
func `get amiibo types`(
|
||||||
filter: AmiiboTypeFilter,
|
filter: AmiiboTypeFilter,
|
||||||
expects numberOfItems: Int
|
expects count: ExpectedCount
|
||||||
) async throws {
|
) async throws {
|
||||||
try await assertAmiiboTypes(
|
try await assertAmiiboTypes(
|
||||||
with: filter,
|
with: filter,
|
||||||
expects: numberOfItems
|
expects: count
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -122,11 +128,11 @@ struct AmiiboServiceLiveTests {
|
|||||||
))
|
))
|
||||||
func `get game characters`(
|
func `get game characters`(
|
||||||
filter: GameCharacterFilter,
|
filter: GameCharacterFilter,
|
||||||
expects numberOfItems: Int
|
expects count: ExpectedCount
|
||||||
) async throws {
|
) async throws {
|
||||||
try await assertGameCharacters(
|
try await assertGameCharacters(
|
||||||
with: filter,
|
with: filter,
|
||||||
expects: numberOfItems
|
expects: count
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -150,11 +156,11 @@ struct AmiiboServiceLiveTests {
|
|||||||
))
|
))
|
||||||
func `get game series`(
|
func `get game series`(
|
||||||
filter: GameSeriesFilter,
|
filter: GameSeriesFilter,
|
||||||
expects numberOfItems: Int
|
expects count: ExpectedCount
|
||||||
) async throws {
|
) async throws {
|
||||||
try await assertGameSeries(
|
try await assertGameSeries(
|
||||||
with: filter,
|
with: filter,
|
||||||
expects: numberOfItems
|
expects: count
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -175,161 +181,11 @@ struct AmiiboServiceLiveTests {
|
|||||||
@Test
|
@Test
|
||||||
func `get the last updated timestamp`() async throws {
|
func `get the last updated timestamp`() async throws {
|
||||||
try await assertLastUpdated(
|
try await assertLastUpdated(
|
||||||
day: 21,
|
onOrAfterDay: 24,
|
||||||
month: 9,
|
month: 7,
|
||||||
year: 2025
|
year: 2026
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
@Test("get amiibos", arguments: zip(
|
|
||||||
Input.amiibos,
|
|
||||||
Output.amiibos
|
|
||||||
))
|
|
||||||
func getAmiibos(
|
|
||||||
filter: AmiiboFilter,
|
|
||||||
expects numberOfItems: Int
|
|
||||||
) async throws {
|
|
||||||
try await assertAmiibos(
|
|
||||||
with: filter,
|
|
||||||
expects: numberOfItems
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test("get amiibos throws", arguments: zip(
|
|
||||||
Input.amiibosThrows,
|
|
||||||
Output.amiibosThrows
|
|
||||||
))
|
|
||||||
func getAmiibosThrows(
|
|
||||||
filter: AmiiboFilter,
|
|
||||||
expects error: AmiiboServiceError
|
|
||||||
) async throws {
|
|
||||||
try await assertsAmiibosThrows(
|
|
||||||
error: error,
|
|
||||||
when: filter
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test("get amiibo series", arguments: zip(
|
|
||||||
Input.amiiboSeries,
|
|
||||||
Output.amiiboSeries
|
|
||||||
))
|
|
||||||
func getAmiiboSeries(
|
|
||||||
filter: AmiiboSeriesFilter,
|
|
||||||
expects numberOfItems: Int
|
|
||||||
) async throws {
|
|
||||||
try await assertAmiiboSeries(
|
|
||||||
with: filter,
|
|
||||||
expects: numberOfItems
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test("get amiibo series throws", arguments: zip(
|
|
||||||
Input.amiiboSeriesThrows,
|
|
||||||
Output.amiiboSeriesThrows
|
|
||||||
))
|
|
||||||
func getAmiiboSeriesThrows(
|
|
||||||
filter: AmiiboSeriesFilter,
|
|
||||||
expects error: AmiiboServiceError
|
|
||||||
) async throws {
|
|
||||||
try await assertsAmiiboSeriesThrows(
|
|
||||||
error: error,
|
|
||||||
when: filter
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test("get amiibo types", arguments: zip(
|
|
||||||
Input.amiiboTypes,
|
|
||||||
Output.amiiboTypes
|
|
||||||
))
|
|
||||||
func getAmiiboTypes(
|
|
||||||
filter: AmiiboTypeFilter,
|
|
||||||
expects numberOfItems: Int
|
|
||||||
) async throws {
|
|
||||||
try await assertAmiiboTypes(
|
|
||||||
with: filter,
|
|
||||||
expects: numberOfItems
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test("get amiibo types throws", arguments: zip(
|
|
||||||
Input.amiiboTypesThrows,
|
|
||||||
Output.amiiboTypesThrows
|
|
||||||
))
|
|
||||||
func getAmiiboTypesThrows(
|
|
||||||
filter: AmiiboTypeFilter,
|
|
||||||
expects error: AmiiboServiceError
|
|
||||||
) async throws {
|
|
||||||
try await assertsAmiiboTypesThrows(
|
|
||||||
error: error,
|
|
||||||
when: filter
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test("get game characters", arguments: zip(
|
|
||||||
Input.gameCharacters,
|
|
||||||
Output.gameCharacters
|
|
||||||
))
|
|
||||||
func getGameCharacters(
|
|
||||||
filter: GameCharacterFilter,
|
|
||||||
expects numberOfItems: Int
|
|
||||||
) async throws {
|
|
||||||
try await assertGameCharacters(
|
|
||||||
with: filter,
|
|
||||||
expects: numberOfItems
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test("get game characters throws", arguments: zip(
|
|
||||||
Input.gameCharactersThrows,
|
|
||||||
Output.gameCharactersThrows
|
|
||||||
))
|
|
||||||
func getGameCharactersThrows(
|
|
||||||
filter: GameCharacterFilter,
|
|
||||||
expects error: AmiiboServiceError
|
|
||||||
) async throws {
|
|
||||||
try await assertsGameCharactersThrows(
|
|
||||||
error: error,
|
|
||||||
when: filter
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test("get game series", arguments: zip(
|
|
||||||
Input.gameSeries,
|
|
||||||
Output.gameSeries
|
|
||||||
))
|
|
||||||
func getGameSeries(
|
|
||||||
filter: GameSeriesFilter,
|
|
||||||
expects numberOfItems: Int
|
|
||||||
) async throws {
|
|
||||||
try await assertGameSeries(
|
|
||||||
with: filter,
|
|
||||||
expects: numberOfItems
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test("get game series throws", arguments: zip(
|
|
||||||
Input.gameSeriesThrows,
|
|
||||||
Output.gameSeriesThrows
|
|
||||||
))
|
|
||||||
func getGameSeriesThrows(
|
|
||||||
filter: GameSeriesFilter,
|
|
||||||
expects error: AmiiboServiceError
|
|
||||||
) async throws {
|
|
||||||
try await assertsGameSeriesThrows(
|
|
||||||
error: error,
|
|
||||||
when: filter
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test("get last updated timestamp")
|
|
||||||
func getLastUpdated() async throws {
|
|
||||||
try await assertLastUpdated(
|
|
||||||
day: 10,
|
|
||||||
month: 10,
|
|
||||||
year: 2025
|
|
||||||
)
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -342,17 +198,17 @@ private extension AmiiboServiceLiveTests {
|
|||||||
/// Asserts the number of items returned by the `amiibos` endpoint that matched a given filter.
|
/// Asserts the number of items returned by the `amiibos` endpoint that matched a given filter.
|
||||||
/// - Parameters:
|
/// - Parameters:
|
||||||
/// - filter: An amiibo filter type.
|
/// - filter: An amiibo filter type.
|
||||||
/// - numberOfItems: An expected number of items returned.
|
/// - count: An expected count of items to be returned.
|
||||||
func assertAmiibos(
|
func assertAmiibos(
|
||||||
with filter: AmiiboFilter,
|
with filter: AmiiboFilter,
|
||||||
expects numberOfItems: Int
|
expects count: ExpectedCount
|
||||||
) async throws {
|
) async throws {
|
||||||
// GIVEN
|
// GIVEN
|
||||||
// WHEN
|
// WHEN
|
||||||
let amiibos = try await service.getAmiibos(filter)
|
let amiibos = try await service.getAmiibos(filter)
|
||||||
|
|
||||||
// THEN
|
// THEN
|
||||||
#expect(amiibos.count == numberOfItems)
|
assert(amiibos.count, matches: count)
|
||||||
|
|
||||||
guard
|
guard
|
||||||
!amiibos.isEmpty,
|
!amiibos.isEmpty,
|
||||||
@@ -365,6 +221,8 @@ private extension AmiiboServiceLiveTests {
|
|||||||
|
|
||||||
if filter.showUsage == true {
|
if filter.showUsage == true {
|
||||||
#expect(firstAmiiboPlatform.switch.first?.usages?.isEmpty == false)
|
#expect(firstAmiiboPlatform.switch.first?.usages?.isEmpty == false)
|
||||||
|
// Given the live data is still not returning any Switch 2 games.
|
||||||
|
#expect(firstAmiiboPlatform.switch2.isEmpty == true)
|
||||||
#expect(firstAmiiboPlatform.threeDS.first?.usages?.isEmpty == false)
|
#expect(firstAmiiboPlatform.threeDS.first?.usages?.isEmpty == false)
|
||||||
#expect(firstAmiiboPlatform.wiiU.first?.usages?.isEmpty == false)
|
#expect(firstAmiiboPlatform.wiiU.first?.usages?.isEmpty == false)
|
||||||
}
|
}
|
||||||
@@ -389,17 +247,17 @@ private extension AmiiboServiceLiveTests {
|
|||||||
/// Asserts the number of items returned by the `amiiboSeries` endpoint that matched a given filter.
|
/// Asserts the number of items returned by the `amiiboSeries` endpoint that matched a given filter.
|
||||||
/// - Parameters:
|
/// - Parameters:
|
||||||
/// - filter: An amiibo series filter type.
|
/// - filter: An amiibo series filter type.
|
||||||
/// - numberOfItems: An expected number of items returned.
|
/// - count: An expected count of items to be returned.
|
||||||
func assertAmiiboSeries(
|
func assertAmiiboSeries(
|
||||||
with filter: AmiiboSeriesFilter,
|
with filter: AmiiboSeriesFilter,
|
||||||
expects numberOfItems: Int
|
expects count: ExpectedCount
|
||||||
) async throws {
|
) async throws {
|
||||||
// GIVEN
|
// GIVEN
|
||||||
// WHEN
|
// WHEN
|
||||||
let amiiboSeries = try await service.getAmiiboSeries(filter)
|
let amiiboSeries = try await service.getAmiiboSeries(filter)
|
||||||
|
|
||||||
// THEN
|
// THEN
|
||||||
#expect(amiiboSeries.count == numberOfItems)
|
assert(amiiboSeries.count, matches: count)
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Asserts the error thrown by the `amiiboSeries` endpoint.
|
/// Asserts the error thrown by the `amiiboSeries` endpoint.
|
||||||
@@ -421,17 +279,17 @@ private extension AmiiboServiceLiveTests {
|
|||||||
/// Asserts the number of items returned by the `amiiboTypes` endpoint that matched a given filter.
|
/// Asserts the number of items returned by the `amiiboTypes` endpoint that matched a given filter.
|
||||||
/// - Parameters:
|
/// - Parameters:
|
||||||
/// - filter: An amiibo type filter type.
|
/// - filter: An amiibo type filter type.
|
||||||
/// - numberOfItems: An expected number of items returned.
|
/// - count: An expected count of items to be returned.
|
||||||
func assertAmiiboTypes(
|
func assertAmiiboTypes(
|
||||||
with filter: AmiiboTypeFilter,
|
with filter: AmiiboTypeFilter,
|
||||||
expects numberOfItems: Int
|
expects count: ExpectedCount
|
||||||
) async throws {
|
) async throws {
|
||||||
// GIVEN
|
// GIVEN
|
||||||
// WHEN
|
// WHEN
|
||||||
let amiiboTypes = try await service.getAmiiboTypes(filter)
|
let amiiboTypes = try await service.getAmiiboTypes(filter)
|
||||||
|
|
||||||
// THEN
|
// THEN
|
||||||
#expect(amiiboTypes.count == numberOfItems)
|
assert(amiiboTypes.count, matches: count)
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Asserts the error thrown by the `amiiboTypes` endpoint.
|
/// Asserts the error thrown by the `amiiboTypes` endpoint.
|
||||||
@@ -453,17 +311,17 @@ private extension AmiiboServiceLiveTests {
|
|||||||
/// Asserts the number of items returned by the `gameCharacters` endpoint that matched a given filter.
|
/// Asserts the number of items returned by the `gameCharacters` endpoint that matched a given filter.
|
||||||
/// - Parameters:
|
/// - Parameters:
|
||||||
/// - filter: A game character filter type.
|
/// - filter: A game character filter type.
|
||||||
/// - numberOfItems: An expected number of items returned.
|
/// - count: An expected count of items to be returned.
|
||||||
func assertGameCharacters(
|
func assertGameCharacters(
|
||||||
with filter: GameCharacterFilter,
|
with filter: GameCharacterFilter,
|
||||||
expects numberOfItems: Int
|
expects count: ExpectedCount
|
||||||
) async throws {
|
) async throws {
|
||||||
// GIVEN
|
// GIVEN
|
||||||
// WHEN
|
// WHEN
|
||||||
let gameCharacters = try await service.getGameCharacters(filter)
|
let gameCharacters = try await service.getGameCharacters(filter)
|
||||||
|
|
||||||
// THEN
|
// THEN
|
||||||
#expect(gameCharacters.count == numberOfItems)
|
assert(gameCharacters.count, matches: count)
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Asserts the error thrown by the `gameCharacters` endpoint.
|
/// Asserts the error thrown by the `gameCharacters` endpoint.
|
||||||
@@ -485,17 +343,17 @@ private extension AmiiboServiceLiveTests {
|
|||||||
/// Asserts the number of items returned by the `gameSeries` endpoint that matched a given filter.
|
/// Asserts the number of items returned by the `gameSeries` endpoint that matched a given filter.
|
||||||
/// - Parameters:
|
/// - Parameters:
|
||||||
/// - filter: A game series filter type.
|
/// - filter: A game series filter type.
|
||||||
/// - numberOfItems: An expected number of items returned.
|
/// - count: An expected count of items to be returned.
|
||||||
func assertGameSeries(
|
func assertGameSeries(
|
||||||
with filter: GameSeriesFilter,
|
with filter: GameSeriesFilter,
|
||||||
expects numberOfItems: Int
|
expects count: ExpectedCount
|
||||||
) async throws {
|
) async throws {
|
||||||
// GIVEN
|
// GIVEN
|
||||||
// WHEN
|
// WHEN
|
||||||
let gameSeries = try await service.getGameSeries(filter)
|
let gameSeries = try await service.getGameSeries(filter)
|
||||||
|
|
||||||
// THEN
|
// THEN
|
||||||
#expect(gameSeries.count == numberOfItems)
|
assert(gameSeries.count, matches: count)
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Asserts the error thrown by the `gameSeries` endpoint.
|
/// Asserts the error thrown by the `gameSeries` endpoint.
|
||||||
@@ -514,31 +372,61 @@ private extension AmiiboServiceLiveTests {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Asserts the date returned by the `lastUpdated` endpoint.
|
/// Asserts the date returned by the `lastUpdated` endpoint is within a plausible range.
|
||||||
|
///
|
||||||
|
/// The live service updates its data over time, so this assertion checks the returned date is not before the last known update and not in the future, instead of matching an exact date that would break on every update.
|
||||||
|
///
|
||||||
/// - Parameters:
|
/// - Parameters:
|
||||||
/// - day: A number of day of the last updated date.
|
/// - day: A number of day of the earliest expected last updated date.
|
||||||
/// - month: A number of month of the last updated date.
|
/// - month: A number of month of the earliest expected last updated date.
|
||||||
/// - year: A number of year of the last updated date.
|
/// - year: A number of year of the earliest expected last updated date.
|
||||||
func assertLastUpdated(
|
func assertLastUpdated(
|
||||||
day: Int,
|
onOrAfterDay day: Int,
|
||||||
month: Int,
|
month: Int,
|
||||||
year: Int
|
year: Int
|
||||||
) async throws {
|
) async throws {
|
||||||
// GIVEN
|
// GIVEN
|
||||||
|
var calendar = Calendar(identifier: .gregorian)
|
||||||
|
|
||||||
|
calendar.timeZone = try #require(TimeZone(secondsFromGMT: 0))
|
||||||
|
|
||||||
|
let earliest = try #require(calendar.date(from: .init(
|
||||||
|
year: year,
|
||||||
|
month: month,
|
||||||
|
day: day
|
||||||
|
)))
|
||||||
|
|
||||||
// WHEN
|
// WHEN
|
||||||
let dateLastUpdated = try await service.getLastUpdated()
|
let dateLastUpdated = try await service.getLastUpdated()
|
||||||
|
|
||||||
// THEN
|
// THEN
|
||||||
let dateComponents = Calendar.current.dateComponents(
|
#expect(dateLastUpdated >= earliest)
|
||||||
[.year, .month, .day],
|
#expect(dateLastUpdated <= .now)
|
||||||
from: dateLastUpdated
|
|
||||||
)
|
|
||||||
|
|
||||||
#expect(dateComponents.year == year)
|
|
||||||
#expect(dateComponents.month == month)
|
|
||||||
#expect(dateComponents.day == day)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Asserts an actual number of items matches an expected count.
|
||||||
|
/// - Parameters:
|
||||||
|
/// - actualCount: A number of items returned by an endpoint.
|
||||||
|
/// - expectation: An expected count to match the number of items against.
|
||||||
|
func assert(_ actualCount: Int, matches expectation: ExpectedCount) {
|
||||||
|
switch expectation {
|
||||||
|
case let .exactly(expected):
|
||||||
|
#expect(actualCount == expected)
|
||||||
|
case let .atLeast(minimum):
|
||||||
|
#expect(actualCount >= minimum)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// MARK: - Expectations
|
||||||
|
|
||||||
|
/// An expectation about the number of items returned by an endpoint of the live service.
|
||||||
|
enum ExpectedCount {
|
||||||
|
/// The endpoint is expected to return exactly the associated number of items.
|
||||||
|
case exactly(Int)
|
||||||
|
/// The endpoint is expected to return at least the associated number of items, as the data at the live service grows over time.
|
||||||
|
case atLeast(Int)
|
||||||
}
|
}
|
||||||
|
|
||||||
// MARK: - Arguments
|
// MARK: - Arguments
|
||||||
@@ -658,24 +546,37 @@ enum Input {
|
|||||||
}
|
}
|
||||||
|
|
||||||
enum Output {
|
enum Output {
|
||||||
/// A list of number of items that are expected from the `assertAmiibos` assertion.
|
/// A list of expected counts from the `assertAmiibos` assertion.
|
||||||
static let amiibos: [Int] = [.totalAmiibos, 7, 7, 1, 1, 1, .zero, .zero, 5, .zero, 7, .totalAmiibos, 235, 235, .zero, .zero, .zero, .zero, 96, 26, .zero, .zero, 63, .totalAmiibos, 12, 6, .zero, .zero, .zero, .totalAmiibos, 49, 32, .zero, .zero, 147, .totalAmiibos, .totalAmiibos, .totalAmiibos]
|
///
|
||||||
|
/// Counts for filters that match a growing set of items are expressed as `atLeast` minimums, so the tests do not break whenever new amiibo items are added to the live service.
|
||||||
|
static let amiibos: [ExpectedCount] = [
|
||||||
|
.atLeast(.minimumAmiibos),
|
||||||
|
.atLeast(7), .atLeast(7),
|
||||||
|
.exactly(1), .atLeast(1),
|
||||||
|
.exactly(1), .exactly(.zero), .exactly(.zero),
|
||||||
|
.atLeast(5), .exactly(.zero), .atLeast(7), .atLeast(.minimumAmiibos),
|
||||||
|
.atLeast(254), .atLeast(254), .exactly(.zero), .exactly(.zero), .exactly(.zero), .exactly(.zero),
|
||||||
|
.atLeast(96), .atLeast(26), .exactly(.zero), .exactly(.zero), .atLeast(63), .atLeast(.minimumAmiibos),
|
||||||
|
.atLeast(14), .atLeast(6), .exactly(.zero), .exactly(.zero), .exactly(.zero), .atLeast(.minimumAmiibos),
|
||||||
|
.atLeast(53), .atLeast(32), .exactly(.zero), .exactly(.zero), .atLeast(152), .atLeast(.minimumAmiibos),
|
||||||
|
.atLeast(.minimumAmiibos), .atLeast(.minimumAmiibos)
|
||||||
|
]
|
||||||
/// A list of errors are expected to be thrown from the `assertAmiibosThrows` assertion.
|
/// A list of errors are expected to be thrown from the `assertAmiibosThrows` assertion.
|
||||||
static let amiibosThrows: [AmiiboServiceError] = [.badRequest, .badRequest, .badRequest, .badRequest, .badRequest, .badRequest, .badRequest]
|
static let amiibosThrows: [AmiiboServiceError] = [.badRequest, .badRequest, .badRequest, .badRequest, .badRequest, .badRequest, .badRequest]
|
||||||
/// A list of number of items that are expected from the `assertAmiiboSeries` assertion.
|
/// A list of expected counts from the `assertAmiiboSeries` assertion.
|
||||||
static let amiiboSeries: [Int] = [.totalAmiiboSeries, 1, 1, 1, .totalAmiiboSeries]
|
static let amiiboSeries: [ExpectedCount] = [.atLeast(.minimumAmiiboSeries), .exactly(1), .exactly(1), .exactly(1), .atLeast(.minimumAmiiboSeries)]
|
||||||
/// A list of errors are expected to be thrown from the `assertAmiiboSeriesThrows` assertion.
|
/// A list of errors are expected to be thrown from the `assertAmiiboSeriesThrows` assertion.
|
||||||
static let amiiboSeriesThrows: [AmiiboServiceError] = [.notFound, .badRequest, .badRequest, .notFound]
|
static let amiiboSeriesThrows: [AmiiboServiceError] = [.notFound, .badRequest, .badRequest, .notFound]
|
||||||
/// A list of number of items that are expected from the `assertAmiiboTypes` assertion.
|
/// A list of expected counts from the `assertAmiiboTypes` assertion.
|
||||||
static let amiiboTypes: [Int] = [.totalAmiiboTypes, 1, 1, 1, .totalAmiiboTypes]
|
static let amiiboTypes: [ExpectedCount] = [.atLeast(.minimumAmiiboTypes), .exactly(1), .exactly(1), .exactly(1), .atLeast(.minimumAmiiboTypes)]
|
||||||
/// A list of errors are expected to be thrown from the `assertAmiiboTypesThrows` assertion.
|
/// A list of errors are expected to be thrown from the `assertAmiiboTypesThrows` assertion.
|
||||||
static let amiiboTypesThrows: [AmiiboServiceError] = [.notFound, .badRequest, .badRequest, .notFound]
|
static let amiiboTypesThrows: [AmiiboServiceError] = [.notFound, .badRequest, .badRequest, .notFound]
|
||||||
/// A list of number of items that are expected from the `assertGameCharacters` assertion.
|
/// A list of expected counts from the `assertGameCharacters` assertion.
|
||||||
static let gameCharacters: [Int] = [.totalGameCharacters, 1, 1, 1, .totalGameCharacters]
|
static let gameCharacters: [ExpectedCount] = [.atLeast(.minimumGameCharacters), .exactly(1), .exactly(1), .exactly(1), .atLeast(.minimumGameCharacters)]
|
||||||
/// A list of errors are expected to be thrown from the `assertGameCharactersThrows` assertion.
|
/// A list of errors are expected to be thrown from the `assertGameCharactersThrows` assertion.
|
||||||
static let gameCharactersThrows: [AmiiboServiceError] = [.notFound, .badRequest, .badRequest, .notFound]
|
static let gameCharactersThrows: [AmiiboServiceError] = [.notFound, .badRequest, .badRequest, .notFound]
|
||||||
/// A list of number of items that are expected from the `assertGameSeries` assertion.
|
/// A list of expected counts from the `assertGameSeries` assertion.
|
||||||
static let gameSeries: [Int] = [.totalGameSeries, 1, 1, 1, .totalGameSeries]
|
static let gameSeries: [ExpectedCount] = [.atLeast(.minimumGameSeries), .exactly(1), .exactly(1), .exactly(1), .atLeast(.minimumGameSeries)]
|
||||||
/// A list of errors are expected to be thrown from the `assertGameSeriesThrows` assertion.
|
/// A list of errors are expected to be thrown from the `assertGameSeriesThrows` assertion.
|
||||||
static let gameSeriesThrows: [AmiiboServiceError] = [.notFound, .badRequest, .badRequest, .notFound]
|
static let gameSeriesThrows: [AmiiboServiceError] = [.notFound, .badRequest, .badRequest, .notFound]
|
||||||
}
|
}
|
||||||
@@ -683,16 +584,16 @@ enum Output {
|
|||||||
// MARK: - Constants
|
// MARK: - Constants
|
||||||
|
|
||||||
private extension Int {
|
private extension Int {
|
||||||
/// A number that represents the total number of amiibo items currently available at the live service.
|
/// A number that represents the minimum number of amiibo items expected from the live service, as of July 2026.
|
||||||
static let totalAmiibos = 927
|
static let minimumAmiibos = 946
|
||||||
/// A number that represents the total number of amiibo series currently available at the live service.
|
/// A number that represents the minimum number of amiibo series expected from the live service, as of July 2026.
|
||||||
static let totalAmiiboSeries = 29
|
static let minimumAmiiboSeries = 31
|
||||||
/// A number that represents the total number of amiibo types currently available at the live service.
|
/// A number that represents the minimum number of amiibo types expected from the live service, as of July 2026.
|
||||||
static let totalAmiiboTypes = 5
|
static let minimumAmiiboTypes = 5
|
||||||
/// A number that represents the total number of game characters currently available at the live service.
|
/// A number that represents the minimum number of game characters expected from the live service, as of July 2026.
|
||||||
static let totalGameCharacters = 675
|
static let minimumGameCharacters = 681
|
||||||
/// A number that represents the total number of game series currently available at the live service.
|
/// A number that represents the minimum number of game series expected from the live service, as of July 2026.
|
||||||
static let totalGameSeries = 117
|
static let minimumGameSeries = 118
|
||||||
}
|
}
|
||||||
|
|
||||||
private extension String {
|
private extension String {
|
||||||
@@ -0,0 +1,266 @@
|
|||||||
|
// ===----------------------------------------------------------------------===
|
||||||
|
//
|
||||||
|
// This source file is part of the Amiibo Service open source project
|
||||||
|
//
|
||||||
|
// Copyright (c) 2026 Röck+Cöde VoF. and the Amiibo Service project authors
|
||||||
|
// Licensed under Apache license v2.0
|
||||||
|
//
|
||||||
|
// See LICENSE for license information
|
||||||
|
// See CONTRIBUTORS for the list of Amiibo Service project authors
|
||||||
|
//
|
||||||
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
//
|
||||||
|
// ===----------------------------------------------------------------------===
|
||||||
|
|
||||||
|
import AmiiboService
|
||||||
|
import Foundation
|
||||||
|
import Testing
|
||||||
|
|
||||||
|
@Suite("Amiibo Service [Mock]", .tags(.mock))
|
||||||
|
struct AmiiboServiceMockTests {
|
||||||
|
|
||||||
|
// MARK: Get Amiibos tests
|
||||||
|
|
||||||
|
@Test("returns empty amiibos when mock provides an empty list")
|
||||||
|
func getAmiibosEmpty() async throws {
|
||||||
|
// GIVEN
|
||||||
|
let service = AmiiboService(client: AmiiboMockClient(amiibos: []))
|
||||||
|
|
||||||
|
// WHEN
|
||||||
|
let amiibos = try await service.getAmiibos()
|
||||||
|
|
||||||
|
// THEN
|
||||||
|
#expect(amiibos.isEmpty)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test("throws notFound when mock provides no amiibos")
|
||||||
|
func getAmiibosNotFound() async {
|
||||||
|
// GIVEN
|
||||||
|
let service = AmiiboService(client: AmiiboMockClient())
|
||||||
|
|
||||||
|
// WHEN
|
||||||
|
// THEN
|
||||||
|
await #expect(throws: AmiiboServiceError.notFound) {
|
||||||
|
try await service.getAmiibos()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test("throws error for amiibos when mock is configured with error", arguments: Errors.all)
|
||||||
|
func getAmiibosThrows(error: AmiiboServiceError) async {
|
||||||
|
// GIVEN
|
||||||
|
let service = AmiiboService(client: AmiiboMockClient(error: error))
|
||||||
|
|
||||||
|
// WHEN
|
||||||
|
// THEN
|
||||||
|
await #expect(throws: error) {
|
||||||
|
try await service.getAmiibos()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// MARK: Get Amiibo Series tests
|
||||||
|
|
||||||
|
@Test("returns empty amiibo series when mock provides an empty list")
|
||||||
|
func getAmiiboSeriesEmpty() async throws {
|
||||||
|
// GIVEN
|
||||||
|
let service = AmiiboService(client: AmiiboMockClient(amiiboSeries: []))
|
||||||
|
|
||||||
|
// WHEN
|
||||||
|
let amiiboSeries = try await service.getAmiiboSeries()
|
||||||
|
|
||||||
|
// THEN
|
||||||
|
#expect(amiiboSeries.isEmpty)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test("throws notFound when mock provides no amiibo series")
|
||||||
|
func getAmiiboSeriesNotFound() async {
|
||||||
|
// GIVEN
|
||||||
|
let service = AmiiboService(client: AmiiboMockClient())
|
||||||
|
|
||||||
|
// WHEN
|
||||||
|
// THEN
|
||||||
|
await #expect(throws: AmiiboServiceError.notFound) {
|
||||||
|
try await service.getAmiiboSeries()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test("throws error for amiibo series when mock is configured with error", arguments: Errors.all)
|
||||||
|
func getAmiiboSeriesThrows(error: AmiiboServiceError) async {
|
||||||
|
// GIVEN
|
||||||
|
let service = AmiiboService(client: AmiiboMockClient(error: error))
|
||||||
|
|
||||||
|
// WHEN
|
||||||
|
// THEN
|
||||||
|
await #expect(throws: error) {
|
||||||
|
try await service.getAmiiboSeries()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// MARK: Get Amiibo Types tests
|
||||||
|
|
||||||
|
@Test("returns empty amiibo types when mock provides an empty list")
|
||||||
|
func getAmiiboTypesEmpty() async throws {
|
||||||
|
// GIVEN
|
||||||
|
let service = AmiiboService(client: AmiiboMockClient(amiiboTypes: []))
|
||||||
|
|
||||||
|
// WHEN
|
||||||
|
let amiiboTypes = try await service.getAmiiboTypes()
|
||||||
|
|
||||||
|
// THEN
|
||||||
|
#expect(amiiboTypes.isEmpty)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test("throws notFound when mock provides no amiibo types")
|
||||||
|
func getAmiiboTypesNotFound() async {
|
||||||
|
// GIVEN
|
||||||
|
let service = AmiiboService(client: AmiiboMockClient())
|
||||||
|
|
||||||
|
// WHEN
|
||||||
|
// THEN
|
||||||
|
await #expect(throws: AmiiboServiceError.notFound) {
|
||||||
|
try await service.getAmiiboTypes()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test("throws error for amiibo types when mock is configured with error", arguments: Errors.all)
|
||||||
|
func getAmiiboTypesThrows(error: AmiiboServiceError) async {
|
||||||
|
// GIVEN
|
||||||
|
let service = AmiiboService(client: AmiiboMockClient(error: error))
|
||||||
|
|
||||||
|
// WHEN
|
||||||
|
// THEN
|
||||||
|
await #expect(throws: error) {
|
||||||
|
try await service.getAmiiboTypes()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// MARK: Get Game Characters tests
|
||||||
|
|
||||||
|
@Test("returns empty game characters when mock provides an empty list")
|
||||||
|
func getGameCharactersEmpty() async throws {
|
||||||
|
// GIVEN
|
||||||
|
let service = AmiiboService(client: AmiiboMockClient(gameCharacters: []))
|
||||||
|
|
||||||
|
// WHEN
|
||||||
|
let gameCharacters = try await service.getGameCharacters()
|
||||||
|
|
||||||
|
// THEN
|
||||||
|
#expect(gameCharacters.isEmpty)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test("throws notFound when mock provides no game characters")
|
||||||
|
func getGameCharactersNotFound() async {
|
||||||
|
// GIVEN
|
||||||
|
let service = AmiiboService(client: AmiiboMockClient())
|
||||||
|
|
||||||
|
// WHEN
|
||||||
|
// THEN
|
||||||
|
await #expect(throws: AmiiboServiceError.notFound) {
|
||||||
|
try await service.getGameCharacters()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test("throws error for game characters when mock is configured with error", arguments: Errors.all)
|
||||||
|
func getGameCharactersThrows(error: AmiiboServiceError) async {
|
||||||
|
// GIVEN
|
||||||
|
let service = AmiiboService(client: AmiiboMockClient(error: error))
|
||||||
|
|
||||||
|
// WHEN
|
||||||
|
// THEN
|
||||||
|
await #expect(throws: error) {
|
||||||
|
try await service.getGameCharacters()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// MARK: Get Game Series tests
|
||||||
|
|
||||||
|
@Test("returns empty game series when mock provides an empty list")
|
||||||
|
func getGameSeriesEmpty() async throws {
|
||||||
|
// GIVEN
|
||||||
|
let service = AmiiboService(client: AmiiboMockClient(gameSeries: []))
|
||||||
|
|
||||||
|
// WHEN
|
||||||
|
let gameSeries = try await service.getGameSeries()
|
||||||
|
|
||||||
|
// THEN
|
||||||
|
#expect(gameSeries.isEmpty)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test("throws notFound when mock provides no game series")
|
||||||
|
func getGameSeriesNotFound() async {
|
||||||
|
// GIVEN
|
||||||
|
let service = AmiiboService(client: AmiiboMockClient())
|
||||||
|
|
||||||
|
// WHEN
|
||||||
|
// THEN
|
||||||
|
await #expect(throws: AmiiboServiceError.notFound) {
|
||||||
|
try await service.getGameSeries()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test("throws error for game series when mock is configured with error", arguments: Errors.all)
|
||||||
|
func getGameSeriesThrows(error: AmiiboServiceError) async {
|
||||||
|
// GIVEN
|
||||||
|
let service = AmiiboService(client: AmiiboMockClient(error: error))
|
||||||
|
|
||||||
|
// WHEN
|
||||||
|
// THEN
|
||||||
|
await #expect(throws: error) {
|
||||||
|
try await service.getGameSeries()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// MARK: Get Last Updated tests
|
||||||
|
|
||||||
|
@Test("returns date when mock provides a last updated date")
|
||||||
|
func getLastUpdated() async throws {
|
||||||
|
// GIVEN
|
||||||
|
let expectedDate = Date(timeIntervalSince1970: 1_700_000_000)
|
||||||
|
let service = AmiiboService(client: AmiiboMockClient(lastUpdated: expectedDate))
|
||||||
|
|
||||||
|
// WHEN
|
||||||
|
let lastUpdated = try await service.getLastUpdated()
|
||||||
|
|
||||||
|
// THEN
|
||||||
|
#expect(lastUpdated == expectedDate)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test("throws notFound when mock provides no last updated date")
|
||||||
|
func getLastUpdatedNotFound() async {
|
||||||
|
// GIVEN
|
||||||
|
let service = AmiiboService(client: AmiiboMockClient())
|
||||||
|
|
||||||
|
// WHEN
|
||||||
|
// THEN
|
||||||
|
await #expect(throws: AmiiboServiceError.notFound) {
|
||||||
|
try await service.getLastUpdated()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test("throws error for last updated when mock is configured with error", arguments: Errors.all)
|
||||||
|
func getLastUpdatedThrows(error: AmiiboServiceError) async {
|
||||||
|
// GIVEN
|
||||||
|
let service = AmiiboService(client: AmiiboMockClient(error: error))
|
||||||
|
|
||||||
|
// WHEN
|
||||||
|
// THEN
|
||||||
|
await #expect(throws: error) {
|
||||||
|
try await service.getLastUpdated()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// MARK: - Arguments
|
||||||
|
|
||||||
|
private enum Errors {
|
||||||
|
/// All possible errors that can be thrown by the service.
|
||||||
|
static let all: [AmiiboServiceError] = [
|
||||||
|
.badRequest,
|
||||||
|
.cancelled,
|
||||||
|
.decoding,
|
||||||
|
.notAvailable,
|
||||||
|
.notFound,
|
||||||
|
.undocumented(500),
|
||||||
|
.unknown("An underlying error description.")
|
||||||
|
]
|
||||||
|
}
|
||||||
+17
-53
@@ -2,7 +2,7 @@
|
|||||||
//
|
//
|
||||||
// This source file is part of the Amiibo Service open source project
|
// This source file is part of the Amiibo Service open source project
|
||||||
//
|
//
|
||||||
// Copyright (c) 2025 Röck+Cöde VoF. and the Amiibo Service project authors
|
// Copyright (c) 2026 Röck+Cöde VoF. and the Amiibo Service project authors
|
||||||
// Licensed under Apache license v2.0
|
// Licensed under Apache license v2.0
|
||||||
//
|
//
|
||||||
// See LICENSE for license information
|
// See LICENSE for license information
|
||||||
@@ -15,30 +15,30 @@
|
|||||||
import AmiiboService
|
import AmiiboService
|
||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
/// A type that implements a mock client, for testing purposes.
|
/// A mock implementation of ``AmiiboClient`` that returns pre-configured data or throws pre-configured errors, for testing purposes.
|
||||||
struct AmiiboMockClient {
|
struct AmiiboMockClient {
|
||||||
|
|
||||||
// MARK: Properties
|
// MARK: Properties
|
||||||
|
|
||||||
/// A list of amiibo items to return, if any.
|
/// The list of amiibo items to return when ``getAmiibos(by:)`` is called, or `nil` to trigger a ``AmiiboServiceError/notFound`` error.
|
||||||
private let amiibos: [Amiibo]?
|
private let amiibos: [Amiibo]?
|
||||||
|
|
||||||
/// A list of amiibo series to return, if any.
|
/// The list of amiibo series to return when ``getAmiiboSeries(by:)`` is called, or `nil` to trigger a ``AmiiboServiceError/notFound`` error.
|
||||||
private let amiiboSeries: [AmiiboSeries]?
|
private let amiiboSeries: [AmiiboSeries]?
|
||||||
|
|
||||||
/// A list of amiibo types to return, if any.
|
/// The list of amiibo types to return when ``getAmiiboTypes(by:)`` is called, or `nil` to trigger a ``AmiiboServiceError/notFound`` error.
|
||||||
private let amiiboTypes: [AmiiboType]?
|
private let amiiboTypes: [AmiiboType]?
|
||||||
|
|
||||||
/// An error to throw, if any.
|
/// An error to throw before returning any data. Takes precedence over stored data when set.
|
||||||
private let error: AmiiboServiceError?
|
private let error: AmiiboServiceError?
|
||||||
|
|
||||||
/// A list of game characters to return, if any.
|
/// The list of game characters to return when ``getGameCharacters(by:)`` is called, or `nil` to trigger a ``AmiiboServiceError/notFound`` error.
|
||||||
private let gameCharacters: [GameCharacter]?
|
private let gameCharacters: [GameCharacter]?
|
||||||
|
|
||||||
/// A list of game series to return, if any.
|
/// The list of game series to return when ``getGameSeries(by:)`` is called, or `nil` to trigger a ``AmiiboServiceError/notFound`` error.
|
||||||
private let gameSeries: [GameSeries]?
|
private let gameSeries: [GameSeries]?
|
||||||
|
|
||||||
/// A last updated date to return, if any.
|
/// The last updated date to return when ``getLastUpdated()`` is called, or `nil` to trigger a ``AmiiboServiceError/notFound`` error.
|
||||||
private let lastUpdated: Date?
|
private let lastUpdated: Date?
|
||||||
|
|
||||||
// MARK: Initializers
|
// MARK: Initializers
|
||||||
@@ -78,7 +78,6 @@ extension AmiiboMockClient: AmiiboClient {
|
|||||||
|
|
||||||
// MARK: Functions
|
// MARK: Functions
|
||||||
|
|
||||||
#if swift(>=6.0)
|
|
||||||
func getAmiibos(
|
func getAmiibos(
|
||||||
by filter: AmiiboFilter
|
by filter: AmiiboFilter
|
||||||
) async throws(AmiiboServiceError) -> [Amiibo] {
|
) async throws(AmiiboServiceError) -> [Amiibo] {
|
||||||
@@ -110,43 +109,8 @@ extension AmiiboMockClient: AmiiboClient {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func getLastUpdated() async throws(AmiiboServiceError) -> Date {
|
func getLastUpdated() async throws(AmiiboServiceError) -> Date {
|
||||||
fetchLastUpdatedIfAny()
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
func getAmiibos(
|
|
||||||
by filter: AmiiboFilter
|
|
||||||
) async throws -> [Amiibo] {
|
|
||||||
try fetchAmiibosIfAny()
|
|
||||||
}
|
|
||||||
|
|
||||||
func getAmiiboSeries(
|
|
||||||
by filter: AmiiboSeriesFilter
|
|
||||||
) async throws -> [AmiiboSeries] {
|
|
||||||
try fetchAmiiboSeriesIfAny()
|
|
||||||
}
|
|
||||||
|
|
||||||
func getAmiiboTypes(
|
|
||||||
by filter: AmiiboTypeFilter
|
|
||||||
) async throws -> [AmiiboType] {
|
|
||||||
try fetchAmiiboTypesIfAny()
|
|
||||||
}
|
|
||||||
|
|
||||||
func getGameCharacters(
|
|
||||||
by filter: GameCharacterFilter
|
|
||||||
) async throws -> [GameCharacter] {
|
|
||||||
try fetchGameCharactersIfAny()
|
|
||||||
}
|
|
||||||
|
|
||||||
func getGameSeries(
|
|
||||||
by filter: GameSeriesFilter
|
|
||||||
) async throws -> [GameSeries] {
|
|
||||||
try fetchGameSeriesIfAny()
|
|
||||||
}
|
|
||||||
|
|
||||||
func getLastUpdated() async throws -> Date {
|
|
||||||
try fetchLastUpdatedIfAny()
|
try fetchLastUpdatedIfAny()
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -159,7 +123,7 @@ private extension AmiiboMockClient {
|
|||||||
/// Fetches a list of amiibo items, if any.
|
/// Fetches a list of amiibo items, if any.
|
||||||
/// - Returns: A list of amiibo items.
|
/// - Returns: A list of amiibo items.
|
||||||
/// - Throws: An ``AmiiboServiceError`` error in case an error has been provided.
|
/// - Throws: An ``AmiiboServiceError`` error in case an error has been provided.
|
||||||
func fetchAmiibosIfAny() throws -> [Amiibo] {
|
func fetchAmiibosIfAny() throws(AmiiboServiceError) -> [Amiibo] {
|
||||||
try throwErrorIfExists()
|
try throwErrorIfExists()
|
||||||
|
|
||||||
guard let amiibos else {
|
guard let amiibos else {
|
||||||
@@ -172,7 +136,7 @@ private extension AmiiboMockClient {
|
|||||||
/// Fetches a list of amiibo series, if any.
|
/// Fetches a list of amiibo series, if any.
|
||||||
/// - Returns: A list of amiibo series.
|
/// - Returns: A list of amiibo series.
|
||||||
/// - Throws: An ``AmiiboServiceError`` error in case an error has been provided.
|
/// - Throws: An ``AmiiboServiceError`` error in case an error has been provided.
|
||||||
func fetchAmiiboSeriesIfAny() throws -> [AmiiboSeries] {
|
func fetchAmiiboSeriesIfAny() throws(AmiiboServiceError) -> [AmiiboSeries] {
|
||||||
try throwErrorIfExists()
|
try throwErrorIfExists()
|
||||||
|
|
||||||
guard let amiiboSeries else {
|
guard let amiiboSeries else {
|
||||||
@@ -185,7 +149,7 @@ private extension AmiiboMockClient {
|
|||||||
/// Fetches a list of amiibo types, if any.
|
/// Fetches a list of amiibo types, if any.
|
||||||
/// - Returns: A list of amiibo types.
|
/// - Returns: A list of amiibo types.
|
||||||
/// - Throws: An ``AmiiboServiceError`` error in case an error has been provided.
|
/// - Throws: An ``AmiiboServiceError`` error in case an error has been provided.
|
||||||
func fetchAmiiboTypesIfAny() throws -> [AmiiboType] {
|
func fetchAmiiboTypesIfAny() throws(AmiiboServiceError) -> [AmiiboType] {
|
||||||
try throwErrorIfExists()
|
try throwErrorIfExists()
|
||||||
|
|
||||||
guard let amiiboTypes else {
|
guard let amiiboTypes else {
|
||||||
@@ -198,7 +162,7 @@ private extension AmiiboMockClient {
|
|||||||
/// Fetches a list of game characters, if any.
|
/// Fetches a list of game characters, if any.
|
||||||
/// - Returns: A list of game characters.
|
/// - Returns: A list of game characters.
|
||||||
/// - Throws: An ``AmiiboServiceError`` error in case an error has been provided.
|
/// - Throws: An ``AmiiboServiceError`` error in case an error has been provided.
|
||||||
func fetchGameCharactersIfAny() throws -> [GameCharacter] {
|
func fetchGameCharactersIfAny() throws(AmiiboServiceError) -> [GameCharacter] {
|
||||||
try throwErrorIfExists()
|
try throwErrorIfExists()
|
||||||
|
|
||||||
guard let gameCharacters else {
|
guard let gameCharacters else {
|
||||||
@@ -211,7 +175,7 @@ private extension AmiiboMockClient {
|
|||||||
/// Fetches a list of game series, if any.
|
/// Fetches a list of game series, if any.
|
||||||
/// - Returns: A list of game series, if any.
|
/// - Returns: A list of game series, if any.
|
||||||
/// - Throws: An ``AmiiboServiceError`` error in case an error has been provided.
|
/// - Throws: An ``AmiiboServiceError`` error in case an error has been provided.
|
||||||
func fetchGameSeriesIfAny() throws -> [GameSeries] {
|
func fetchGameSeriesIfAny() throws(AmiiboServiceError) -> [GameSeries] {
|
||||||
try throwErrorIfExists()
|
try throwErrorIfExists()
|
||||||
|
|
||||||
guard let gameSeries else {
|
guard let gameSeries else {
|
||||||
@@ -224,7 +188,7 @@ private extension AmiiboMockClient {
|
|||||||
/// Fetches a last updated date, if any.
|
/// Fetches a last updated date, if any.
|
||||||
/// - Returns: A last updated date.
|
/// - Returns: A last updated date.
|
||||||
/// - Throws: An ``AmiiboServiceError`` error in case an error has been provided.
|
/// - Throws: An ``AmiiboServiceError`` error in case an error has been provided.
|
||||||
func fetchLastUpdatedIfAny() throws -> Date {
|
func fetchLastUpdatedIfAny() throws(AmiiboServiceError) -> Date {
|
||||||
try throwErrorIfExists()
|
try throwErrorIfExists()
|
||||||
|
|
||||||
guard let lastUpdated else {
|
guard let lastUpdated else {
|
||||||
@@ -234,8 +198,8 @@ private extension AmiiboMockClient {
|
|||||||
return lastUpdated
|
return lastUpdated
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Throws an error if it has been provided,
|
/// Throws the configured error if one has been provided.
|
||||||
/// - Throws: An ``AmiiboServiceError`` error in case an error has been provided.
|
/// - Throws: An ``AmiiboServiceError`` error if one was configured during initialization.
|
||||||
func throwErrorIfExists() throws(AmiiboServiceError) {
|
func throwErrorIfExists() throws(AmiiboServiceError) {
|
||||||
if let error {
|
if let error {
|
||||||
throw error
|
throw error
|
||||||
+4
-1
@@ -2,7 +2,7 @@
|
|||||||
//
|
//
|
||||||
// This source file is part of the Amiibo Service open source project
|
// This source file is part of the Amiibo Service open source project
|
||||||
//
|
//
|
||||||
// Copyright (c) 2025 Röck+Cöde VoF. and the Amiibo Service project authors
|
// Copyright (c) 2026 Röck+Cöde VoF. and the Amiibo Service project authors
|
||||||
// Licensed under Apache license v2.0
|
// Licensed under Apache license v2.0
|
||||||
//
|
//
|
||||||
// See LICENSE for license information
|
// See LICENSE for license information
|
||||||
@@ -21,4 +21,7 @@ extension Tag {
|
|||||||
/// Tag that indicates tests against a live backend service.
|
/// Tag that indicates tests against a live backend service.
|
||||||
@Tag static var live: Self
|
@Tag static var live: Self
|
||||||
|
|
||||||
|
/// Tag that indicates tests using a mock client.
|
||||||
|
@Tag static var mock: Self
|
||||||
|
|
||||||
}
|
}
|
||||||
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
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
@@ -0,0 +1 @@
|
|||||||
|
{"sections":[],"primaryContentSections":[{"declarations":[{"languages":["swift"],"platforms":["macOS"],"tokens":[{"text":"static","kind":"keyword"},{"text":" ","kind":"text"},{"text":"func","kind":"keyword"},{"text":" ","kind":"text"},{"text":"!=","kind":"identifier"},{"text":" ","kind":"text"},{"text":"(","kind":"text"},{"text":"lhs","kind":"internalParam"},{"text":": ","kind":"text"},{"text":"borrowing","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Self","kind":"typeIdentifier"},{"text":", ","kind":"text"},{"text":"rhs","kind":"internalParam"},{"text":": ","kind":"text"},{"text":"borrowing","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Self","kind":"typeIdentifier"},{"text":") -> ","kind":"text"},{"preciseIdentifier":"s:Sb","text":"Bool","kind":"typeIdentifier"}]}],"kind":"declarations"}],"kind":"symbol","schemaVersion":{"patch":0,"major":0,"minor":3},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/!=(_:_:)","interfaceLanguage":"swift"},"metadata":{"title":"!=(_:_:)","modules":[{"name":"AmiiboService","relatedModules":["Swift"]}],"extendedModule":"Swift","role":"symbol","externalID":"s:SQsRi_zRi0_zrlE2neoiySbx_xtFZ::SYNTHESIZED::s:13AmiiboService0A0V","symbolKind":"op","roleHeading":"Operator","fragments":[{"text":"static","kind":"keyword"},{"text":" ","kind":"text"},{"text":"func","kind":"keyword"},{"text":" ","kind":"text"},{"text":"!=","kind":"identifier"},{"text":" ","kind":"text"},{"text":"(","kind":"text"},{"text":"borrowing","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Self","kind":"typeIdentifier"},{"text":", ","kind":"text"},{"text":"borrowing","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Self","kind":"typeIdentifier"},{"text":") -> ","kind":"text"},{"text":"Bool","kind":"typeIdentifier","preciseIdentifier":"s:Sb"}]},"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/!=(_:_:)"]}],"references":{"doc://AmiiboService/documentation/AmiiboService":{"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interact with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","url":"\/documentation\/amiiboservice","kind":"symbol","title":"AmiiboService","role":"collection"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"fragments":[{"text":"struct","kind":"keyword"},{"kind":"text","text":" "},{"text":"Amiibo","kind":"identifier"}],"url":"\/documentation\/amiiboservice\/amiibo","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"type":"topic","abstract":[{"type":"text","text":"A model that represents an amiibo."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","kind":"symbol","title":"Amiibo","role":"symbol"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/!=(_:_:)":{"role":"symbol","abstract":[],"title":"!=(_:_:)","url":"\/documentation\/amiiboservice\/amiibo\/!=(_:_:)","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/!=(_:_:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"!="},{"kind":"text","text":" "},{"kind":"text","text":"("},{"kind":"keyword","text":"borrowing"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":", "},{"kind":"keyword","text":"borrowing"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","text":"Bool"}],"kind":"symbol"}}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/equatable-implementations"]}],"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Equatable-Implementations","interfaceLanguage":"swift"},"metadata":{"modules":[{"name":"AmiiboService"}],"role":"collectionGroup","title":"Equatable Implementations","roleHeading":"API Collection"},"sections":[],"schemaVersion":{"patch":0,"major":0,"minor":3},"topicSections":[{"title":"Operators","generated":true,"identifiers":["doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/!=(_:_:)"],"anchor":"Operators"}],"kind":"article","references":{"doc://AmiiboService/documentation/AmiiboService":{"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interact with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","url":"\/documentation\/amiiboservice","kind":"symbol","title":"AmiiboService","role":"collection"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/!=(_:_:)":{"role":"symbol","abstract":[],"title":"!=(_:_:)","url":"\/documentation\/amiiboservice\/amiibo\/!=(_:_:)","type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/!=(_:_:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"!="},{"kind":"text","text":" "},{"kind":"text","text":"("},{"kind":"keyword","text":"borrowing"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":", "},{"kind":"keyword","text":"borrowing"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","text":"Bool"}],"kind":"symbol"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"fragments":[{"text":"struct","kind":"keyword"},{"kind":"text","text":" "},{"text":"Amiibo","kind":"identifier"}],"url":"\/documentation\/amiiboservice\/amiibo","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"type":"topic","abstract":[{"type":"text","text":"A model that represents an amiibo."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","kind":"symbol","title":"Amiibo","role":"symbol"}}}
|
||||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
|||||||
|
{"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game"]]},"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game\/!=(_:_:)"},"metadata":{"externalID":"s:SQsRi_zRi0_zrlE2neoiySbx_xtFZ::SYNTHESIZED::s:13AmiiboService0A0V4GameV","title":"!=(_:_:)","symbolKind":"op","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"!="},{"kind":"text","text":" "},{"kind":"text","text":"("},{"kind":"keyword","text":"borrowing"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":", "},{"kind":"keyword","text":"borrowing"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":") -> "},{"preciseIdentifier":"s:Sb","kind":"typeIdentifier","text":"Bool"}],"extendedModule":"Swift","roleHeading":"Operator","modules":[{"name":"AmiiboService","relatedModules":["Swift"]}],"role":"symbol"},"sections":[],"schemaVersion":{"patch":0,"minor":3,"major":0},"primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"languages":["swift"],"tokens":[{"text":"static","kind":"keyword"},{"text":" ","kind":"text"},{"text":"func","kind":"keyword"},{"text":" ","kind":"text"},{"text":"!=","kind":"identifier"},{"text":" ","kind":"text"},{"text":"(","kind":"text"},{"text":"lhs","kind":"internalParam"},{"text":": ","kind":"text"},{"text":"borrowing","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Self","kind":"typeIdentifier"},{"text":", ","kind":"text"},{"text":"rhs","kind":"internalParam"},{"text":": ","kind":"text"},{"text":"borrowing","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Self","kind":"typeIdentifier"},{"text":") -> ","kind":"text"},{"preciseIdentifier":"s:Sb","text":"Bool","kind":"typeIdentifier"}]}]}],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/game\/!=(_:_:)"]}],"kind":"symbol","references":{"doc://AmiiboService/documentation/AmiiboService":{"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interact with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","url":"\/documentation\/amiiboservice","kind":"symbol","title":"AmiiboService","role":"collection"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"fragments":[{"text":"struct","kind":"keyword"},{"kind":"text","text":" "},{"text":"Amiibo","kind":"identifier"}],"url":"\/documentation\/amiiboservice\/amiibo","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"type":"topic","abstract":[{"type":"text","text":"A model that represents an amiibo."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","kind":"symbol","title":"Amiibo","role":"symbol"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Game":{"role":"symbol","navigatorTitle":[{"kind":"identifier","text":"Game"}],"url":"\/documentation\/amiiboservice\/amiibo\/game","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game","abstract":[{"text":"A model that represents a game related to an amiibo.","type":"text"}],"type":"topic","title":"Amiibo.Game","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Game"}],"kind":"symbol"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Game/!=(_:_:)":{"fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"!="},{"kind":"text","text":" "},{"kind":"text","text":"("},{"kind":"keyword","text":"borrowing"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":", "},{"kind":"keyword","text":"borrowing"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":") -> "},{"preciseIdentifier":"s:Sb","kind":"typeIdentifier","text":"Bool"}],"url":"\/documentation\/amiiboservice\/amiibo\/game\/!=(_:_:)","type":"topic","abstract":[],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game\/!=(_:_:)","kind":"symbol","title":"!=(_:_:)","role":"symbol"}}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"sections":[],"kind":"article","schemaVersion":{"minor":3,"patch":0,"major":0},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game"]]},"metadata":{"roleHeading":"API Collection","role":"collectionGroup","title":"Equatable Implementations","modules":[{"name":"AmiiboService"}]},"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game\/Equatable-Implementations"},"topicSections":[{"identifiers":["doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game\/!=(_:_:)"],"generated":true,"anchor":"Operators","title":"Operators"}],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/game\/equatable-implementations"]}],"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"fragments":[{"text":"struct","kind":"keyword"},{"kind":"text","text":" "},{"text":"Amiibo","kind":"identifier"}],"url":"\/documentation\/amiiboservice\/amiibo","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"type":"topic","abstract":[{"type":"text","text":"A model that represents an amiibo."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","kind":"symbol","title":"Amiibo","role":"symbol"},"doc://AmiiboService/documentation/AmiiboService":{"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interact with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","url":"\/documentation\/amiiboservice","kind":"symbol","title":"AmiiboService","role":"collection"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Game/!=(_:_:)":{"fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"!="},{"kind":"text","text":" "},{"kind":"text","text":"("},{"kind":"keyword","text":"borrowing"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":", "},{"kind":"keyword","text":"borrowing"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":") -> "},{"preciseIdentifier":"s:Sb","kind":"typeIdentifier","text":"Bool"}],"url":"\/documentation\/amiiboservice\/amiibo\/game\/!=(_:_:)","type":"topic","abstract":[],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game\/!=(_:_:)","kind":"symbol","title":"!=(_:_:)","role":"symbol"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Game":{"role":"symbol","navigatorTitle":[{"kind":"identifier","text":"Game"}],"url":"\/documentation\/amiiboservice\/amiibo\/game","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game","abstract":[{"text":"A model that represents a game related to an amiibo.","type":"text"}],"type":"topic","title":"Amiibo.Game","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Game"}],"kind":"symbol"}}}
|
||||||
@@ -1 +1 @@
|
|||||||
{"sections":[],"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game\/identifiers"},"schemaVersion":{"major":0,"patch":0,"minor":3},"metadata":{"modules":[{"name":"AmiiboService"}],"role":"symbol","symbolKind":"property","externalID":"s:13AmiiboService0A0V4GameV11identifiersSaySSGvp","title":"identifiers","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"identifiers"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","text":"String"},{"kind":"text","text":"]"}],"roleHeading":"Instance Property"},"primaryContentSections":[{"declarations":[{"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"identifiers"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","text":"String"},{"kind":"text","text":"]"}],"platforms":["macOS"],"languages":["swift"]}],"kind":"declarations"}],"abstract":[{"text":"A list of identifiers.","type":"text"}],"kind":"symbol","variants":[{"paths":["\/documentation\/amiiboservice\/amiibo\/game\/identifiers"],"traits":[{"interfaceLanguage":"swift"}]}],"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game"]]},"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo/Game":{"kind":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"kind":"identifier","text":"Game"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game","abstract":[{"text":"A model that represents a game related to an amiibo item.","type":"text"}],"type":"topic","navigatorTitle":[{"text":"Game","kind":"identifier"}],"title":"Amiibo.Game","url":"\/documentation\/amiiboservice\/amiibo\/game","role":"symbol"},"doc://AmiiboService/documentation/AmiiboService":{"type":"topic","url":"\/documentation\/amiiboservice","abstract":[{"type":"text","text":"A library that provides everything the developer needs to interact with the "},{"inlineContent":[{"type":"text","text":"Amiibo API"}],"type":"strong"},{"text":" backend service.","type":"text"}],"kind":"symbol","role":"collection","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","title":"AmiiboService"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo item.","type":"text"}],"title":"Amiibo","url":"\/documentation\/amiiboservice\/amiibo","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"kind":"symbol","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"role":"symbol","type":"topic"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Game/identifiers":{"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game\/identifiers","url":"\/documentation\/amiiboservice\/amiibo\/game\/identifiers","role":"symbol","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"identifiers","kind":"identifier"},{"text":": [","kind":"text"},{"text":"String","kind":"typeIdentifier","preciseIdentifier":"s:SS"},{"text":"]","kind":"text"}],"title":"identifiers","abstract":[{"text":"A list of identifiers.","type":"text"}],"kind":"symbol","type":"topic"}}}
|
{"metadata":{"fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"identifiers","kind":"identifier"},{"text":": [","kind":"text"},{"text":"String","kind":"typeIdentifier","preciseIdentifier":"s:SS"},{"text":"]","kind":"text"}],"externalID":"s:13AmiiboService0A0V4GameV11identifiersSaySSGvp","symbolKind":"property","modules":[{"name":"AmiiboService"}],"roleHeading":"Instance Property","title":"identifiers","role":"symbol"},"abstract":[{"type":"text","text":"A list of game identifiers associated with this game."}],"schemaVersion":{"minor":3,"patch":0,"major":0},"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game\/identifiers","interfaceLanguage":"swift"},"sections":[],"kind":"symbol","hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game"]]},"primaryContentSections":[{"declarations":[{"languages":["swift"],"platforms":["macOS"],"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"identifiers"},{"kind":"text","text":": ["},{"text":"String","kind":"typeIdentifier","preciseIdentifier":"s:SS"},{"text":"]","kind":"text"}]}],"kind":"declarations"}],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/game\/identifiers"]}],"references":{"doc://AmiiboService/documentation/AmiiboService":{"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interact with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","url":"\/documentation\/amiiboservice","kind":"symbol","title":"AmiiboService","role":"collection"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"fragments":[{"text":"struct","kind":"keyword"},{"kind":"text","text":" "},{"text":"Amiibo","kind":"identifier"}],"url":"\/documentation\/amiiboservice\/amiibo","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"type":"topic","abstract":[{"type":"text","text":"A model that represents an amiibo."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","kind":"symbol","title":"Amiibo","role":"symbol"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Game":{"role":"symbol","navigatorTitle":[{"kind":"identifier","text":"Game"}],"url":"\/documentation\/amiiboservice\/amiibo\/game","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game","abstract":[{"text":"A model that represents a game related to an amiibo.","type":"text"}],"type":"topic","title":"Amiibo.Game","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Game"}],"kind":"symbol"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Game/identifiers":{"title":"identifiers","type":"topic","abstract":[{"type":"text","text":"A list of game identifiers associated with this game."}],"kind":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game\/identifiers","url":"\/documentation\/amiiboservice\/amiibo\/game\/identifiers","role":"symbol","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"identifiers","kind":"identifier"},{"text":": [","kind":"text"},{"preciseIdentifier":"s:SS","text":"String","kind":"typeIdentifier"},{"text":"]","kind":"text"}]}}}
|
||||||
@@ -1 +1 @@
|
|||||||
{"metadata":{"fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"name"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","text":"String"}],"modules":[{"name":"AmiiboService"}],"title":"name","role":"symbol","symbolKind":"property","roleHeading":"Instance Property","externalID":"s:13AmiiboService0A0V4GameV4nameSSvp"},"kind":"symbol","identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game\/name"},"sections":[],"primaryContentSections":[{"declarations":[{"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"name"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","text":"String"}],"platforms":["macOS"],"languages":["swift"]}],"kind":"declarations"}],"abstract":[{"text":"A name.","type":"text"}],"variants":[{"paths":["\/documentation\/amiiboservice\/amiibo\/game\/name"],"traits":[{"interfaceLanguage":"swift"}]}],"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game"]]},"schemaVersion":{"major":0,"patch":0,"minor":3},"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo/Game/name":{"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game\/name","url":"\/documentation\/amiiboservice\/amiibo\/game\/name","role":"symbol","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"name","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:SS","text":"String","kind":"typeIdentifier"}],"title":"name","abstract":[{"text":"A name.","type":"text"}],"kind":"symbol","type":"topic"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Game":{"kind":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"kind":"identifier","text":"Game"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game","abstract":[{"text":"A model that represents a game related to an amiibo item.","type":"text"}],"type":"topic","navigatorTitle":[{"text":"Game","kind":"identifier"}],"title":"Amiibo.Game","url":"\/documentation\/amiiboservice\/amiibo\/game","role":"symbol"},"doc://AmiiboService/documentation/AmiiboService":{"type":"topic","url":"\/documentation\/amiiboservice","abstract":[{"type":"text","text":"A library that provides everything the developer needs to interact with the "},{"inlineContent":[{"type":"text","text":"Amiibo API"}],"type":"strong"},{"text":" backend service.","type":"text"}],"kind":"symbol","role":"collection","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","title":"AmiiboService"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo item.","type":"text"}],"title":"Amiibo","url":"\/documentation\/amiiboservice\/amiibo","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"kind":"symbol","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"role":"symbol","type":"topic"}}}
|
{"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game"]]},"abstract":[{"text":"The name of this game.","type":"text"}],"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game\/name"},"metadata":{"externalID":"s:13AmiiboService0A0V4GameV4nameSSvp","title":"name","symbolKind":"property","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"name","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:SS","text":"String","kind":"typeIdentifier"}],"roleHeading":"Instance Property","modules":[{"name":"AmiiboService"}],"role":"symbol"},"sections":[],"schemaVersion":{"minor":3,"major":0,"patch":0},"primaryContentSections":[{"declarations":[{"languages":["swift"],"platforms":["macOS"],"tokens":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"name","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:SS","text":"String","kind":"typeIdentifier"}]}],"kind":"declarations"}],"variants":[{"paths":["\/documentation\/amiiboservice\/amiibo\/game\/name"],"traits":[{"interfaceLanguage":"swift"}]}],"kind":"symbol","references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"fragments":[{"text":"struct","kind":"keyword"},{"kind":"text","text":" "},{"text":"Amiibo","kind":"identifier"}],"url":"\/documentation\/amiiboservice\/amiibo","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"type":"topic","abstract":[{"type":"text","text":"A model that represents an amiibo."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","kind":"symbol","title":"Amiibo","role":"symbol"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Game/name":{"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game\/name","abstract":[{"text":"The name of this game.","type":"text"}],"url":"\/documentation\/amiiboservice\/amiibo\/game\/name","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"name","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:SS","text":"String","kind":"typeIdentifier"}],"kind":"symbol","title":"name","role":"symbol"},"doc://AmiiboService/documentation/AmiiboService":{"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interact with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","url":"\/documentation\/amiiboservice","kind":"symbol","title":"AmiiboService","role":"collection"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Game":{"role":"symbol","navigatorTitle":[{"kind":"identifier","text":"Game"}],"url":"\/documentation\/amiiboservice\/amiibo\/game","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game","abstract":[{"text":"A model that represents a game related to an amiibo.","type":"text"}],"type":"topic","title":"Amiibo.Game","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Game"}],"kind":"symbol"}}}
|
||||||
@@ -1 +1 @@
|
|||||||
{"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game\/usages"},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game"]]},"schemaVersion":{"major":0,"patch":0,"minor":3},"metadata":{"modules":[{"name":"AmiiboService"}],"role":"symbol","symbolKind":"property","externalID":"s:13AmiiboService0A0V4GameV6usagesSayAC5UsageVGSgvp","title":"usages","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"usages","kind":"identifier"},{"text":": [","kind":"text"},{"text":"Amiibo","kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0A0V"},{"text":".","kind":"text"},{"text":"Usage","kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0A0V5UsageV"},{"text":"]?","kind":"text"}],"roleHeading":"Instance Property"},"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"usages","kind":"identifier"},{"text":": [","kind":"text"},{"text":"Amiibo","kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0A0V","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"},{"text":".","kind":"text"},{"text":"Usage","kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0A0V5UsageV","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage"},{"text":"]?","kind":"text"}],"languages":["swift"],"platforms":["macOS"]}]}],"abstract":[{"text":"A list of amiibo usages, if any.","type":"text"}],"kind":"symbol","variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/game\/usages"]}],"sections":[],"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo/Game":{"kind":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"kind":"identifier","text":"Game"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game","abstract":[{"text":"A model that represents a game related to an amiibo item.","type":"text"}],"type":"topic","navigatorTitle":[{"text":"Game","kind":"identifier"}],"title":"Amiibo.Game","url":"\/documentation\/amiiboservice\/amiibo\/game","role":"symbol"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo item.","type":"text"}],"title":"Amiibo","url":"\/documentation\/amiiboservice\/amiibo","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"kind":"symbol","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"role":"symbol","type":"topic"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Usage":{"abstract":[{"type":"text","text":"A model that represents the usage of an amiibo item within a certain game."}],"type":"topic","url":"\/documentation\/amiiboservice\/amiibo\/usage","navigatorTitle":[{"text":"Usage","kind":"identifier"}],"role":"symbol","kind":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Usage","kind":"identifier"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage","title":"Amiibo.Usage"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Game/usages":{"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game\/usages","url":"\/documentation\/amiiboservice\/amiibo\/game\/usages","role":"symbol","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"usages","kind":"identifier"},{"text":": [","kind":"text"},{"preciseIdentifier":"s:13AmiiboService0A0V","text":"Amiibo","kind":"typeIdentifier"},{"text":".","kind":"text"},{"preciseIdentifier":"s:13AmiiboService0A0V5UsageV","text":"Usage","kind":"typeIdentifier"},{"text":"]?","kind":"text"}],"title":"usages","abstract":[{"text":"A list of amiibo usages, if any.","type":"text"}],"kind":"symbol","type":"topic"},"doc://AmiiboService/documentation/AmiiboService":{"type":"topic","url":"\/documentation\/amiiboservice","abstract":[{"type":"text","text":"A library that provides everything the developer needs to interact with the "},{"inlineContent":[{"type":"text","text":"Amiibo API"}],"type":"strong"},{"text":" backend service.","type":"text"}],"kind":"symbol","role":"collection","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","title":"AmiiboService"}}}
|
{"sections":[],"primaryContentSections":[{"declarations":[{"languages":["swift"],"platforms":["macOS"],"tokens":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"kind":"identifier","text":"usages"},{"text":": [","kind":"text"},{"kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0A0V5UsageV","text":"Usage","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage"},{"text":"]?","kind":"text"}]}],"kind":"declarations"}],"abstract":[{"type":"text","text":"A list of amiibo usages within this game, if available."}],"kind":"symbol","schemaVersion":{"minor":3,"major":0,"patch":0},"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game\/usages"},"metadata":{"fragments":[{"kind":"keyword","text":"let"},{"text":" ","kind":"text"},{"kind":"identifier","text":"usages"},{"text":": [","kind":"text"},{"preciseIdentifier":"s:13AmiiboService0A0V5UsageV","kind":"typeIdentifier","text":"Usage"},{"kind":"text","text":"]?"}],"roleHeading":"Instance Property","title":"usages","externalID":"s:13AmiiboService0A0V4GameV6usagesSayAC5UsageVGSgvp","symbolKind":"property","role":"symbol","modules":[{"name":"AmiiboService"}]},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game"]]},"variants":[{"paths":["\/documentation\/amiiboservice\/amiibo\/game\/usages"],"traits":[{"interfaceLanguage":"swift"}]}],"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"fragments":[{"text":"struct","kind":"keyword"},{"kind":"text","text":" "},{"text":"Amiibo","kind":"identifier"}],"url":"\/documentation\/amiiboservice\/amiibo","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"type":"topic","abstract":[{"type":"text","text":"A model that represents an amiibo."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","kind":"symbol","title":"Amiibo","role":"symbol"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Game/usages":{"fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"usages","kind":"identifier"},{"text":": [","kind":"text"},{"kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0A0V5UsageV","text":"Usage"},{"kind":"text","text":"]?"}],"url":"\/documentation\/amiiboservice\/amiibo\/game\/usages","type":"topic","abstract":[{"type":"text","text":"A list of amiibo usages within this game, if available."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game\/usages","kind":"symbol","title":"usages","role":"symbol"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Usage":{"kind":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage","type":"topic","url":"\/documentation\/amiiboservice\/amiibo\/usage","abstract":[{"type":"text","text":"A model that represents the usage of an amiibo within a certain game."}],"role":"symbol","title":"Amiibo.Usage","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Usage"}],"navigatorTitle":[{"kind":"identifier","text":"Usage"}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Game":{"role":"symbol","navigatorTitle":[{"kind":"identifier","text":"Game"}],"url":"\/documentation\/amiiboservice\/amiibo\/game","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game","abstract":[{"text":"A model that represents a game related to an amiibo.","type":"text"}],"type":"topic","title":"Amiibo.Game","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Game"}],"kind":"symbol"},"doc://AmiiboService/documentation/AmiiboService":{"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interact with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","url":"\/documentation\/amiiboservice","kind":"symbol","title":"AmiiboService","role":"collection"}}}
|
||||||
@@ -1 +1 @@
|
|||||||
{"metadata":{"modules":[{"name":"AmiiboService"}],"role":"symbol","symbolKind":"property","externalID":"s:13AmiiboService0A0V13gameCharacterSSvp","title":"gameCharacter","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"gameCharacter"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","text":"String"}],"roleHeading":"Instance Property"},"kind":"symbol","identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/gameCharacter"},"sections":[],"primaryContentSections":[{"declarations":[{"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"gameCharacter"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","text":"String"}],"platforms":["macOS"],"languages":["swift"]}],"kind":"declarations"}],"abstract":[{"text":"A game character.","type":"text"}],"variants":[{"paths":["\/documentation\/amiiboservice\/amiibo\/gamecharacter"],"traits":[{"interfaceLanguage":"swift"}]}],"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"schemaVersion":{"major":0,"patch":0,"minor":3},"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo/gameCharacter":{"type":"topic","url":"\/documentation\/amiiboservice\/amiibo\/gamecharacter","role":"symbol","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"gameCharacter","kind":"identifier"},{"text":": ","kind":"text"},{"text":"String","kind":"typeIdentifier","preciseIdentifier":"s:SS"}],"kind":"symbol","abstract":[{"type":"text","text":"A game character."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/gameCharacter","title":"gameCharacter"},"doc://AmiiboService/documentation/AmiiboService":{"type":"topic","url":"\/documentation\/amiiboservice","abstract":[{"type":"text","text":"A library that provides everything the developer needs to interact with the "},{"inlineContent":[{"type":"text","text":"Amiibo API"}],"type":"strong"},{"text":" backend service.","type":"text"}],"kind":"symbol","role":"collection","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","title":"AmiiboService"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo item.","type":"text"}],"title":"Amiibo","url":"\/documentation\/amiiboservice\/amiibo","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"kind":"symbol","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"role":"symbol","type":"topic"}}}
|
{"sections":[],"primaryContentSections":[{"declarations":[{"platforms":["macOS"],"languages":["swift"],"tokens":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"gameCharacter","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:SS","text":"String","kind":"typeIdentifier"}]}],"kind":"declarations"}],"abstract":[{"text":"The name of the game character associated with this amiibo.","type":"text"}],"kind":"symbol","identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/gameCharacter","interfaceLanguage":"swift"},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"metadata":{"title":"gameCharacter","modules":[{"name":"AmiiboService"}],"role":"symbol","externalID":"s:13AmiiboService0A0V13gameCharacterSSvp","symbolKind":"property","roleHeading":"Instance Property","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"gameCharacter","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:SS","kind":"typeIdentifier","text":"String"}]},"schemaVersion":{"patch":0,"major":0,"minor":3},"variants":[{"paths":["\/documentation\/amiiboservice\/amiibo\/gamecharacter"],"traits":[{"interfaceLanguage":"swift"}]}],"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"fragments":[{"text":"struct","kind":"keyword"},{"kind":"text","text":" "},{"text":"Amiibo","kind":"identifier"}],"url":"\/documentation\/amiiboservice\/amiibo","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"type":"topic","abstract":[{"type":"text","text":"A model that represents an amiibo."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","kind":"symbol","title":"Amiibo","role":"symbol"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/gameCharacter":{"role":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/gamecharacter","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/gameCharacter","abstract":[{"type":"text","text":"The name of the game character associated with this amiibo."}],"type":"topic","title":"gameCharacter","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"gameCharacter","kind":"identifier"},{"text":": ","kind":"text"},{"text":"String","kind":"typeIdentifier","preciseIdentifier":"s:SS"}],"kind":"symbol"},"doc://AmiiboService/documentation/AmiiboService":{"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interact with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","url":"\/documentation\/amiiboservice","kind":"symbol","title":"AmiiboService","role":"collection"}}}
|
||||||
@@ -1 +1 @@
|
|||||||
{"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"gameSeries"},{"kind":"text","text":": "},{"preciseIdentifier":"s:SS","kind":"typeIdentifier","text":"String"}],"modules":[{"name":"AmiiboService"}],"title":"gameSeries","role":"symbol","symbolKind":"property","roleHeading":"Instance Property","externalID":"s:13AmiiboService0A0V10gameSeriesSSvp"},"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/gameSeries"},"sections":[],"primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"gameSeries"},{"kind":"text","text":": "},{"preciseIdentifier":"s:SS","kind":"typeIdentifier","text":"String"}],"languages":["swift"]}]}],"abstract":[{"text":"A game series.","type":"text"}],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/gameseries"]}],"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"schemaVersion":{"patch":0,"minor":3,"major":0},"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo/gameSeries":{"type":"topic","url":"\/documentation\/amiiboservice\/amiibo\/gameseries","role":"symbol","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"gameSeries","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:SS","text":"String","kind":"typeIdentifier"}],"kind":"symbol","abstract":[{"type":"text","text":"A game series."}],"title":"gameSeries","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/gameSeries"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo item.","type":"text"}],"title":"Amiibo","url":"\/documentation\/amiiboservice\/amiibo","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"kind":"symbol","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"role":"symbol","type":"topic"},"doc://AmiiboService/documentation/AmiiboService":{"type":"topic","url":"\/documentation\/amiiboservice","abstract":[{"type":"text","text":"A library that provides everything the developer needs to interact with the "},{"inlineContent":[{"type":"text","text":"Amiibo API"}],"type":"strong"},{"text":" backend service.","type":"text"}],"kind":"symbol","role":"collection","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","title":"AmiiboService"}}}
|
{"metadata":{"fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"gameSeries"},{"text":": ","kind":"text"},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","text":"String"}],"externalID":"s:13AmiiboService0A0V10gameSeriesSSvp","symbolKind":"property","modules":[{"name":"AmiiboService"}],"roleHeading":"Instance Property","title":"gameSeries","role":"symbol"},"abstract":[{"type":"text","text":"The name of the game series associated with this amiibo."}],"schemaVersion":{"minor":3,"major":0,"patch":0},"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/gameSeries"},"sections":[],"kind":"symbol","hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"gameSeries","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:SS","text":"String","kind":"typeIdentifier"}],"platforms":["macOS"],"languages":["swift"]}]}],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/gameseries"]}],"references":{"doc://AmiiboService/documentation/AmiiboService":{"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interact with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","url":"\/documentation\/amiiboservice","kind":"symbol","title":"AmiiboService","role":"collection"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"fragments":[{"text":"struct","kind":"keyword"},{"kind":"text","text":" "},{"text":"Amiibo","kind":"identifier"}],"url":"\/documentation\/amiiboservice\/amiibo","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"type":"topic","abstract":[{"type":"text","text":"A model that represents an amiibo."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","kind":"symbol","title":"Amiibo","role":"symbol"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/gameSeries":{"title":"gameSeries","abstract":[{"type":"text","text":"The name of the game series associated with this amiibo."}],"kind":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/gameSeries","type":"topic","url":"\/documentation\/amiiboservice\/amiibo\/gameseries","role":"symbol","fragments":[{"text":"let","kind":"keyword"},{"kind":"text","text":" "},{"kind":"identifier","text":"gameSeries"},{"kind":"text","text":": "},{"text":"String","kind":"typeIdentifier","preciseIdentifier":"s:SS"}]}}}
|
||||||
@@ -1 +1 @@
|
|||||||
{"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/head","interfaceLanguage":"swift"},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"schemaVersion":{"major":0,"minor":3,"patch":0},"metadata":{"modules":[{"name":"AmiiboService"}],"role":"symbol","symbolKind":"property","externalID":"s:13AmiiboService0A0V4headSSvp","title":"head","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"head"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"}],"roleHeading":"Instance Property"},"primaryContentSections":[{"declarations":[{"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"head"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"}],"platforms":["macOS"],"languages":["swift"]}],"kind":"declarations"}],"abstract":[{"type":"text","text":"The first 8 hexadecimal characters of an identifier."}],"kind":"symbol","variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/head"]}],"sections":[],"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo/head":{"type":"topic","url":"\/documentation\/amiiboservice\/amiibo\/head","role":"symbol","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"head","kind":"identifier"},{"text":": ","kind":"text"},{"text":"String","kind":"typeIdentifier","preciseIdentifier":"s:SS"}],"kind":"symbol","abstract":[{"type":"text","text":"The first 8 hexadecimal characters of an identifier."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/head","title":"head"},"doc://AmiiboService/documentation/AmiiboService":{"type":"topic","url":"\/documentation\/amiiboservice","abstract":[{"type":"text","text":"A library that provides everything the developer needs to interact with the "},{"inlineContent":[{"type":"text","text":"Amiibo API"}],"type":"strong"},{"text":" backend service.","type":"text"}],"kind":"symbol","role":"collection","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","title":"AmiiboService"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo item.","type":"text"}],"title":"Amiibo","url":"\/documentation\/amiiboservice\/amiibo","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"kind":"symbol","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"role":"symbol","type":"topic"}}}
|
{"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"abstract":[{"text":"The first 8 hexadecimal characters of the amiibo identifier.","type":"text"}],"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/head"},"metadata":{"fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"head"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"}],"externalID":"s:13AmiiboService0A0V4headSSvp","symbolKind":"property","modules":[{"name":"AmiiboService"}],"roleHeading":"Instance Property","title":"head","role":"symbol"},"sections":[],"schemaVersion":{"patch":0,"major":0,"minor":3},"primaryContentSections":[{"kind":"declarations","declarations":[{"languages":["swift"],"platforms":["macOS"],"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"head"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"}]}]}],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/head"]}],"kind":"symbol","references":{"doc://AmiiboService/documentation/AmiiboService":{"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interact with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","url":"\/documentation\/amiiboservice","kind":"symbol","title":"AmiiboService","role":"collection"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/head":{"fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"head"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","text":"String"}],"url":"\/documentation\/amiiboservice\/amiibo\/head","type":"topic","abstract":[{"type":"text","text":"The first 8 hexadecimal characters of the amiibo identifier."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/head","kind":"symbol","title":"head","role":"symbol"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"fragments":[{"text":"struct","kind":"keyword"},{"kind":"text","text":" "},{"text":"Amiibo","kind":"identifier"}],"url":"\/documentation\/amiiboservice\/amiibo","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"type":"topic","abstract":[{"type":"text","text":"A model that represents an amiibo."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","kind":"symbol","title":"Amiibo","role":"symbol"}}}
|
||||||
@@ -1 +1 @@
|
|||||||
{"metadata":{"fragments":[{"kind":"keyword","text":"var"},{"text":" ","kind":"text"},{"text":"identifier","kind":"identifier"},{"text":": ","kind":"text"},{"text":"String","preciseIdentifier":"s:SS","kind":"typeIdentifier"}],"modules":[{"name":"AmiiboService"}],"title":"identifier","role":"symbol","symbolKind":"property","roleHeading":"Instance Property","externalID":"s:13AmiiboService0A0V10identifierSSvp"},"kind":"symbol","identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/identifier"},"sections":[],"primaryContentSections":[{"declarations":[{"tokens":[{"text":"var","kind":"keyword"},{"text":" ","kind":"text"},{"kind":"identifier","text":"identifier"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","text":"String"},{"kind":"text","text":" { "},{"kind":"keyword","text":"get"},{"kind":"text","text":" }"}],"languages":["swift"],"platforms":["macOS"]}],"kind":"declarations"}],"abstract":[{"type":"text","text":"An identifier."}],"variants":[{"paths":["\/documentation\/amiiboservice\/amiibo\/identifier"],"traits":[{"interfaceLanguage":"swift"}]}],"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"schemaVersion":{"major":0,"patch":0,"minor":3},"references":{"doc://AmiiboService/documentation/AmiiboService":{"type":"topic","url":"\/documentation\/amiiboservice","abstract":[{"type":"text","text":"A library that provides everything the developer needs to interact with the "},{"inlineContent":[{"type":"text","text":"Amiibo API"}],"type":"strong"},{"text":" backend service.","type":"text"}],"kind":"symbol","role":"collection","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","title":"AmiiboService"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo item.","type":"text"}],"title":"Amiibo","url":"\/documentation\/amiiboservice\/amiibo","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"kind":"symbol","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"role":"symbol","type":"topic"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/identifier":{"type":"topic","url":"\/documentation\/amiiboservice\/amiibo\/identifier","role":"symbol","fragments":[{"text":"var","kind":"keyword"},{"text":" ","kind":"text"},{"text":"identifier","kind":"identifier"},{"text":": ","kind":"text"},{"text":"String","kind":"typeIdentifier","preciseIdentifier":"s:SS"}],"kind":"symbol","abstract":[{"text":"An identifier.","type":"text"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/identifier","title":"identifier"}}}
|
{"metadata":{"fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"identifier"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"}],"externalID":"s:13AmiiboService0A0V10identifierSSvp","symbolKind":"property","modules":[{"name":"AmiiboService"}],"roleHeading":"Instance Property","title":"identifier","role":"symbol"},"abstract":[{"type":"text","text":"The full 16-character hexadecimal identifier, composed of the "},{"type":"reference","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/head","isActive":true},{"type":"text","text":" and "},{"type":"reference","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/tail","isActive":true},{"type":"text","text":"."}],"schemaVersion":{"patch":0,"minor":3,"major":0},"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/identifier"},"kind":"symbol","sections":[],"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"identifier"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"},{"kind":"text","text":" { "},{"kind":"keyword","text":"get"},{"kind":"text","text":" }"}],"platforms":["macOS"],"languages":["swift"]}]}],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/identifier"]}],"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo/head":{"fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"head"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","text":"String"}],"url":"\/documentation\/amiiboservice\/amiibo\/head","type":"topic","abstract":[{"type":"text","text":"The first 8 hexadecimal characters of the amiibo identifier."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/head","kind":"symbol","title":"head","role":"symbol"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/tail":{"fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"tail"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","text":"String"}],"url":"\/documentation\/amiiboservice\/amiibo\/tail","type":"topic","abstract":[{"type":"text","text":"The last 8 hexadecimal characters of the amiibo identifier."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/tail","kind":"symbol","title":"tail","role":"symbol"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/identifier":{"fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"identifier"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","text":"String"}],"url":"\/documentation\/amiiboservice\/amiibo\/identifier","type":"topic","abstract":[{"type":"text","text":"The full 16-character hexadecimal identifier, composed of the "},{"type":"reference","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/head","isActive":true},{"type":"text","text":" and "},{"type":"reference","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/tail","isActive":true},{"type":"text","text":"."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/identifier","kind":"symbol","title":"identifier","role":"symbol"},"doc://AmiiboService/documentation/AmiiboService":{"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interact with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","url":"\/documentation\/amiiboservice","kind":"symbol","title":"AmiiboService","role":"collection"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"fragments":[{"text":"struct","kind":"keyword"},{"kind":"text","text":" "},{"text":"Amiibo","kind":"identifier"}],"url":"\/documentation\/amiiboservice\/amiibo","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"type":"topic","abstract":[{"type":"text","text":"A model that represents an amiibo."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","kind":"symbol","title":"Amiibo","role":"symbol"}}}
|
||||||
@@ -1 +1 @@
|
|||||||
{"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/image","interfaceLanguage":"swift"},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"schemaVersion":{"major":0,"minor":3,"patch":0},"metadata":{"modules":[{"name":"AmiiboService"}],"role":"symbol","symbolKind":"property","externalID":"s:13AmiiboService0A0V5imageSSvp","title":"image","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"image"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"}],"roleHeading":"Instance Property"},"primaryContentSections":[{"declarations":[{"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"image"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"}],"platforms":["macOS"],"languages":["swift"]}],"kind":"declarations"}],"abstract":[{"type":"text","text":"An image link."}],"kind":"symbol","variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/image"]}],"sections":[],"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo/image":{"type":"topic","url":"\/documentation\/amiiboservice\/amiibo\/image","role":"symbol","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"image","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:SS","text":"String","kind":"typeIdentifier"}],"kind":"symbol","abstract":[{"text":"An image link.","type":"text"}],"title":"image","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/image"},"doc://AmiiboService/documentation/AmiiboService":{"type":"topic","url":"\/documentation\/amiiboservice","abstract":[{"type":"text","text":"A library that provides everything the developer needs to interact with the "},{"inlineContent":[{"type":"text","text":"Amiibo API"}],"type":"strong"},{"text":" backend service.","type":"text"}],"kind":"symbol","role":"collection","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","title":"AmiiboService"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo item.","type":"text"}],"title":"Amiibo","url":"\/documentation\/amiiboservice\/amiibo","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"kind":"symbol","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"role":"symbol","type":"topic"}}}
|
{"metadata":{"fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"image"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"}],"externalID":"s:13AmiiboService0A0V5imageSSvp","symbolKind":"property","modules":[{"name":"AmiiboService"}],"roleHeading":"Instance Property","title":"image","role":"symbol"},"abstract":[{"text":"A URL string pointing to the image of this amiibo.","type":"text"}],"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/image","interfaceLanguage":"swift"},"schemaVersion":{"minor":3,"patch":0,"major":0},"sections":[],"kind":"symbol","hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"let"},{"text":" ","kind":"text"},{"text":"image","kind":"identifier"},{"text":": ","kind":"text"},{"text":"String","preciseIdentifier":"s:SS","kind":"typeIdentifier"}],"platforms":["macOS"],"languages":["swift"]}]}],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/image"]}],"references":{"doc://AmiiboService/documentation/AmiiboService":{"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interact with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","url":"\/documentation\/amiiboservice","kind":"symbol","title":"AmiiboService","role":"collection"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"fragments":[{"text":"struct","kind":"keyword"},{"kind":"text","text":" "},{"text":"Amiibo","kind":"identifier"}],"url":"\/documentation\/amiiboservice\/amiibo","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"type":"topic","abstract":[{"type":"text","text":"A model that represents an amiibo."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","kind":"symbol","title":"Amiibo","role":"symbol"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/image":{"fragments":[{"kind":"keyword","text":"let"},{"text":" ","kind":"text"},{"kind":"identifier","text":"image"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:SS","text":"String","kind":"typeIdentifier"}],"url":"\/documentation\/amiiboservice\/amiibo\/image","type":"topic","abstract":[{"text":"A URL string pointing to the image of this amiibo.","type":"text"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/image","kind":"symbol","title":"image","role":"symbol"}}}
|
||||||
@@ -1 +1 @@
|
|||||||
{"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/imageURL"},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"schemaVersion":{"major":0,"minor":3,"patch":0},"metadata":{"modules":[{"name":"AmiiboService"}],"role":"symbol","symbolKind":"property","externalID":"s:13AmiiboService0A0V8imageURL10Foundation0D0VSgvp","title":"imageURL","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"imageURL"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"URL","preciseIdentifier":"s:10Foundation3URLV"},{"kind":"text","text":"?"}],"roleHeading":"Instance Property"},"primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"languages":["swift"],"tokens":[{"text":"var","kind":"keyword"},{"text":" ","kind":"text"},{"text":"imageURL","kind":"identifier"},{"text":": ","kind":"text"},{"text":"URL","kind":"typeIdentifier","preciseIdentifier":"s:10Foundation3URLV"},{"text":"? { ","kind":"text"},{"text":"get","kind":"keyword"},{"kind":"text","text":" }"}]}]}],"abstract":[{"type":"text","text":"A URL related to an image link, if any."}],"kind":"symbol","variants":[{"paths":["\/documentation\/amiiboservice\/amiibo\/imageurl"],"traits":[{"interfaceLanguage":"swift"}]}],"sections":[],"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo item.","type":"text"}],"title":"Amiibo","url":"\/documentation\/amiiboservice\/amiibo","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"kind":"symbol","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"role":"symbol","type":"topic"},"doc://AmiiboService/documentation/AmiiboService":{"type":"topic","url":"\/documentation\/amiiboservice","abstract":[{"type":"text","text":"A library that provides everything the developer needs to interact with the "},{"inlineContent":[{"type":"text","text":"Amiibo API"}],"type":"strong"},{"text":" backend service.","type":"text"}],"kind":"symbol","role":"collection","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","title":"AmiiboService"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/imageURL":{"title":"imageURL","type":"topic","url":"\/documentation\/amiiboservice\/amiibo\/imageurl","role":"symbol","kind":"symbol","fragments":[{"text":"var","kind":"keyword"},{"kind":"text","text":" "},{"kind":"identifier","text":"imageURL"},{"text":": ","kind":"text"},{"text":"URL","kind":"typeIdentifier","preciseIdentifier":"s:10Foundation3URLV"},{"text":"?","kind":"text"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/imageURL","abstract":[{"text":"A URL related to an image link, if any.","type":"text"}]}}}
|
{"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/imageURL"},"abstract":[{"text":"A URL constructed from the ","type":"text"},{"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/image","isActive":true,"type":"reference"},{"text":" string, if valid.","type":"text"}],"schemaVersion":{"minor":3,"major":0,"patch":0},"primaryContentSections":[{"declarations":[{"languages":["swift"],"platforms":["macOS"],"tokens":[{"text":"var","kind":"keyword"},{"text":" ","kind":"text"},{"text":"imageURL","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:10Foundation3URLV","text":"URL","kind":"typeIdentifier"},{"text":"? { ","kind":"text"},{"text":"get","kind":"keyword"},{"text":" }","kind":"text"}]}],"kind":"declarations"}],"kind":"symbol","sections":[],"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"metadata":{"fragments":[{"text":"var","kind":"keyword"},{"text":" ","kind":"text"},{"text":"imageURL","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:10Foundation3URLV","text":"URL","kind":"typeIdentifier"},{"text":"?","kind":"text"}],"roleHeading":"Instance Property","title":"imageURL","externalID":"s:13AmiiboService0A0V8imageURL10Foundation0D0VSgvp","symbolKind":"property","role":"symbol","modules":[{"name":"AmiiboService"}]},"variants":[{"paths":["\/documentation\/amiiboservice\/amiibo\/imageurl"],"traits":[{"interfaceLanguage":"swift"}]}],"references":{"doc://AmiiboService/documentation/AmiiboService":{"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interact with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","url":"\/documentation\/amiiboservice","kind":"symbol","title":"AmiiboService","role":"collection"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/image":{"fragments":[{"kind":"keyword","text":"let"},{"text":" ","kind":"text"},{"kind":"identifier","text":"image"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:SS","text":"String","kind":"typeIdentifier"}],"url":"\/documentation\/amiiboservice\/amiibo\/image","type":"topic","abstract":[{"text":"A URL string pointing to the image of this amiibo.","type":"text"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/image","kind":"symbol","title":"image","role":"symbol"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/imageURL":{"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/imageURL","abstract":[{"text":"A URL constructed from the ","type":"text"},{"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/image","isActive":true,"type":"reference"},{"text":" string, if valid.","type":"text"}],"url":"\/documentation\/amiiboservice\/amiibo\/imageurl","fragments":[{"text":"var","kind":"keyword"},{"text":" ","kind":"text"},{"text":"imageURL","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:10Foundation3URLV","text":"URL","kind":"typeIdentifier"},{"text":"?","kind":"text"}],"kind":"symbol","title":"imageURL","role":"symbol"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"fragments":[{"text":"struct","kind":"keyword"},{"kind":"text","text":" "},{"text":"Amiibo","kind":"identifier"}],"url":"\/documentation\/amiiboservice\/amiibo","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"type":"topic","abstract":[{"type":"text","text":"A model that represents an amiibo."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","kind":"symbol","title":"Amiibo","role":"symbol"}}}
|
||||||
@@ -1 +1 @@
|
|||||||
{"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/name","interfaceLanguage":"swift"},"sections":[],"schemaVersion":{"minor":3,"major":0,"patch":0},"metadata":{"modules":[{"name":"AmiiboService"}],"role":"symbol","symbolKind":"property","externalID":"s:13AmiiboService0A0V4nameSSvp","title":"name","fragments":[{"kind":"keyword","text":"let"},{"text":" ","kind":"text"},{"kind":"identifier","text":"name"},{"text":": ","kind":"text"},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"}],"roleHeading":"Instance Property"},"primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"name"},{"kind":"text","text":": "},{"text":"String","kind":"typeIdentifier","preciseIdentifier":"s:SS"}],"languages":["swift"]}]}],"abstract":[{"type":"text","text":"An amiibo name."}],"kind":"symbol","variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/name"]}],"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"references":{"doc://AmiiboService/documentation/AmiiboService":{"type":"topic","url":"\/documentation\/amiiboservice","abstract":[{"type":"text","text":"A library that provides everything the developer needs to interact with the "},{"inlineContent":[{"type":"text","text":"Amiibo API"}],"type":"strong"},{"text":" backend service.","type":"text"}],"kind":"symbol","role":"collection","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","title":"AmiiboService"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/name":{"type":"topic","url":"\/documentation\/amiiboservice\/amiibo\/name","role":"symbol","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"name","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:SS","text":"String","kind":"typeIdentifier"}],"kind":"symbol","abstract":[{"text":"An amiibo name.","type":"text"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/name","title":"name"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo item.","type":"text"}],"title":"Amiibo","url":"\/documentation\/amiiboservice\/amiibo","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"kind":"symbol","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"role":"symbol","type":"topic"}}}
|
{"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"abstract":[{"type":"text","text":"The name of this amiibo."}],"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/name","interfaceLanguage":"swift"},"metadata":{"fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"name"},{"kind":"text","text":": "},{"preciseIdentifier":"s:SS","kind":"typeIdentifier","text":"String"}],"externalID":"s:13AmiiboService0A0V4nameSSvp","symbolKind":"property","modules":[{"name":"AmiiboService"}],"roleHeading":"Instance Property","title":"name","role":"symbol"},"sections":[],"schemaVersion":{"major":0,"patch":0,"minor":3},"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"name"},{"kind":"text","text":": "},{"preciseIdentifier":"s:SS","kind":"typeIdentifier","text":"String"}],"platforms":["macOS"],"languages":["swift"]}]}],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/name"]}],"kind":"symbol","references":{"doc://AmiiboService/documentation/AmiiboService":{"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interact with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","url":"\/documentation\/amiiboservice","kind":"symbol","title":"AmiiboService","role":"collection"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"fragments":[{"text":"struct","kind":"keyword"},{"kind":"text","text":" "},{"text":"Amiibo","kind":"identifier"}],"url":"\/documentation\/amiiboservice\/amiibo","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"type":"topic","abstract":[{"type":"text","text":"A model that represents an amiibo."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","kind":"symbol","title":"Amiibo","role":"symbol"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/name":{"fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"name"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"}],"url":"\/documentation\/amiiboservice\/amiibo\/name","type":"topic","abstract":[{"text":"The name of this amiibo.","type":"text"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/name","kind":"symbol","title":"name","role":"symbol"}}}
|
||||||
@@ -1 +1 @@
|
|||||||
{"abstract":[{"type":"text","text":"A game platform type, if any."}],"schemaVersion":{"patch":0,"major":0,"minor":3},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"sections":[],"kind":"symbol","identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/platform-swift.property"},"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"let"},{"text":" ","kind":"text"},{"text":"platform","kind":"identifier"},{"kind":"text","text":": "},{"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","kind":"typeIdentifier","text":"Amiibo","preciseIdentifier":"s:13AmiiboService0A0V"},{"text":".","kind":"text"},{"kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0A0V8PlatformV","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct","text":"Platform"},{"text":"?","kind":"text"}],"platforms":["macOS"],"languages":["swift"]}]}],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/platform-swift.property"]}],"metadata":{"fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"platform"},{"text":": ","kind":"text"},{"kind":"typeIdentifier","text":"Amiibo","preciseIdentifier":"s:13AmiiboService0A0V"},{"kind":"text","text":"."},{"kind":"typeIdentifier","text":"Platform","preciseIdentifier":"s:13AmiiboService0A0V8PlatformV"},{"kind":"text","text":"?"}],"symbolKind":"property","role":"symbol","externalID":"s:13AmiiboService0A0V8platformAC8PlatformVSgvp","title":"platform","roleHeading":"Instance Property","modules":[{"name":"AmiiboService"}]},"references":{"doc://AmiiboService/documentation/AmiiboService":{"type":"topic","url":"\/documentation\/amiiboservice","abstract":[{"type":"text","text":"A library that provides everything the developer needs to interact with the "},{"inlineContent":[{"type":"text","text":"Amiibo API"}],"type":"strong"},{"text":" backend service.","type":"text"}],"kind":"symbol","role":"collection","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","title":"AmiiboService"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Platform-swift.struct":{"kind":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Platform","kind":"identifier"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct","abstract":[{"type":"text","text":"A model that represents a collection of "},{"type":"codeVoice","code":"WiiU"},{"type":"text","text":", "},{"code":"3DS","type":"codeVoice"},{"type":"text","text":", and "},{"code":"Switch","type":"codeVoice"},{"type":"text","text":" games related to an amiibo item."}],"type":"topic","navigatorTitle":[{"text":"Platform","kind":"identifier"}],"title":"Amiibo.Platform","url":"\/documentation\/amiiboservice\/amiibo\/platform-swift.struct","role":"symbol"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo item.","type":"text"}],"title":"Amiibo","url":"\/documentation\/amiiboservice\/amiibo","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"kind":"symbol","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"role":"symbol","type":"topic"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/platform-swift.property":{"abstract":[{"type":"text","text":"A game platform type, if any."}],"type":"topic","url":"\/documentation\/amiiboservice\/amiibo\/platform-swift.property","role":"symbol","kind":"symbol","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"platform","kind":"identifier"},{"text":": ","kind":"text"},{"text":"Amiibo","kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0A0V"},{"text":".","kind":"text"},{"preciseIdentifier":"s:13AmiiboService0A0V8PlatformV","text":"Platform","kind":"typeIdentifier"},{"text":"?","kind":"text"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/platform-swift.property","title":"platform"}}}
|
{"metadata":{"fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"platform","kind":"identifier"},{"text":": ","kind":"text"},{"text":"Platform","kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0A0V8PlatformV"},{"text":"?","kind":"text"}],"externalID":"s:13AmiiboService0A0V8platformAC8PlatformVSgvp","symbolKind":"property","modules":[{"name":"AmiiboService"}],"roleHeading":"Instance Property","title":"platform","role":"symbol"},"abstract":[{"type":"text","text":"The game platform data for this amiibo, if available."}],"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/platform-swift.property","interfaceLanguage":"swift"},"schemaVersion":{"major":0,"patch":0,"minor":3},"kind":"symbol","sections":[],"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"platform","kind":"identifier"},{"text":": ","kind":"text"},{"text":"Platform","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct","kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0A0V8PlatformV"},{"text":"?","kind":"text"}],"platforms":["macOS"],"languages":["swift"]}]}],"variants":[{"paths":["\/documentation\/amiiboservice\/amiibo\/platform-swift.property"],"traits":[{"interfaceLanguage":"swift"}]}],"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"fragments":[{"text":"struct","kind":"keyword"},{"kind":"text","text":" "},{"text":"Amiibo","kind":"identifier"}],"url":"\/documentation\/amiiboservice\/amiibo","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"type":"topic","abstract":[{"type":"text","text":"A model that represents an amiibo."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","kind":"symbol","title":"Amiibo","role":"symbol"},"doc://AmiiboService/documentation/AmiiboService":{"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interact with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","url":"\/documentation\/amiiboservice","kind":"symbol","title":"AmiiboService","role":"collection"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/platform-swift.property":{"fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"platform","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:13AmiiboService0A0V8PlatformV","text":"Platform","kind":"typeIdentifier"},{"text":"?","kind":"text"}],"url":"\/documentation\/amiiboservice\/amiibo\/platform-swift.property","type":"topic","abstract":[{"type":"text","text":"The game platform data for this amiibo, if available."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/platform-swift.property","kind":"symbol","title":"platform","role":"symbol"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Platform-swift.struct":{"fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Platform"}],"url":"\/documentation\/amiiboservice\/amiibo\/platform-swift.struct","navigatorTitle":[{"kind":"identifier","text":"Platform"}],"type":"topic","abstract":[{"text":"A model that represents a collection of ","type":"text"},{"type":"codeVoice","code":"Switch"},{"text":", ","type":"text"},{"type":"codeVoice","code":"Switch 2"},{"text":", ","type":"text"},{"type":"codeVoice","code":"3DS"},{"text":", and ","type":"text"},{"code":"Wii U","type":"codeVoice"},{"text":" games related to an amiibo.","type":"text"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct","kind":"symbol","title":"Amiibo.Platform","role":"symbol"}}}
|
||||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
|||||||
|
{"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct\/!=(_:_:)","interfaceLanguage":"swift"},"schemaVersion":{"patch":0,"major":0,"minor":3},"primaryContentSections":[{"declarations":[{"tokens":[{"text":"static","kind":"keyword"},{"text":" ","kind":"text"},{"text":"func","kind":"keyword"},{"text":" ","kind":"text"},{"text":"!=","kind":"identifier"},{"text":" ","kind":"text"},{"text":"(","kind":"text"},{"text":"lhs","kind":"internalParam"},{"text":": ","kind":"text"},{"text":"borrowing","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Self","kind":"typeIdentifier"},{"text":", ","kind":"text"},{"text":"rhs","kind":"internalParam"},{"text":": ","kind":"text"},{"text":"borrowing","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Self","kind":"typeIdentifier"},{"text":") -> ","kind":"text"},{"text":"Bool","preciseIdentifier":"s:Sb","kind":"typeIdentifier"}],"languages":["swift"],"platforms":["macOS"]}],"kind":"declarations"}],"sections":[],"kind":"symbol","metadata":{"fragments":[{"text":"static","kind":"keyword"},{"text":" ","kind":"text"},{"text":"func","kind":"keyword"},{"text":" ","kind":"text"},{"text":"!=","kind":"identifier"},{"text":" ","kind":"text"},{"text":"(","kind":"text"},{"text":"borrowing","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Self","kind":"typeIdentifier"},{"text":", ","kind":"text"},{"text":"borrowing","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Self","kind":"typeIdentifier"},{"text":") -> ","kind":"text"},{"preciseIdentifier":"s:Sb","text":"Bool","kind":"typeIdentifier"}],"roleHeading":"Operator","title":"!=(_:_:)","extendedModule":"Swift","externalID":"s:SQsRi_zRi0_zrlE2neoiySbx_xtFZ::SYNTHESIZED::s:13AmiiboService0A0V8PlatformV","symbolKind":"op","role":"symbol","modules":[{"relatedModules":["Swift"],"name":"AmiiboService"}]},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct"]]},"variants":[{"paths":["\/documentation\/amiiboservice\/amiibo\/platform-swift.struct\/!=(_:_:)"],"traits":[{"interfaceLanguage":"swift"}]}],"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo/Platform-swift.struct/!=(_:_:)":{"role":"symbol","abstract":[],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct\/!=(_:_:)","title":"!=(_:_:)","type":"topic","url":"\/documentation\/amiiboservice\/amiibo\/platform-swift.struct\/!=(_:_:)","fragments":[{"text":"static","kind":"keyword"},{"text":" ","kind":"text"},{"text":"func","kind":"keyword"},{"text":" ","kind":"text"},{"text":"!=","kind":"identifier"},{"text":" ","kind":"text"},{"text":"(","kind":"text"},{"text":"borrowing","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Self","kind":"typeIdentifier"},{"text":", ","kind":"text"},{"text":"borrowing","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Self","kind":"typeIdentifier"},{"text":") -> ","kind":"text"},{"preciseIdentifier":"s:Sb","text":"Bool","kind":"typeIdentifier"}],"kind":"symbol"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"fragments":[{"text":"struct","kind":"keyword"},{"kind":"text","text":" "},{"text":"Amiibo","kind":"identifier"}],"url":"\/documentation\/amiiboservice\/amiibo","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"type":"topic","abstract":[{"type":"text","text":"A model that represents an amiibo."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","kind":"symbol","title":"Amiibo","role":"symbol"},"doc://AmiiboService/documentation/AmiiboService":{"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interact with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","url":"\/documentation\/amiiboservice","kind":"symbol","title":"AmiiboService","role":"collection"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Platform-swift.struct":{"fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Platform"}],"url":"\/documentation\/amiiboservice\/amiibo\/platform-swift.struct","navigatorTitle":[{"kind":"identifier","text":"Platform"}],"type":"topic","abstract":[{"text":"A model that represents a collection of ","type":"text"},{"type":"codeVoice","code":"Switch"},{"text":", ","type":"text"},{"type":"codeVoice","code":"Switch 2"},{"text":", ","type":"text"},{"type":"codeVoice","code":"3DS"},{"text":", and ","type":"text"},{"code":"Wii U","type":"codeVoice"},{"text":" games related to an amiibo.","type":"text"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct","kind":"symbol","title":"Amiibo.Platform","role":"symbol"}}}
|
||||||
+1
@@ -0,0 +1 @@
|
|||||||
|
{"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/platform-swift.struct\/equatable-implementations"]}],"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct"]]},"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct\/Equatable-Implementations","interfaceLanguage":"swift"},"metadata":{"roleHeading":"API Collection","modules":[{"name":"AmiiboService"}],"title":"Equatable Implementations","role":"collectionGroup"},"sections":[],"schemaVersion":{"patch":0,"major":0,"minor":3},"topicSections":[{"title":"Operators","identifiers":["doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct\/!=(_:_:)"],"anchor":"Operators","generated":true}],"kind":"article","references":{"doc://AmiiboService/documentation/AmiiboService":{"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interact with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","url":"\/documentation\/amiiboservice","kind":"symbol","title":"AmiiboService","role":"collection"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"fragments":[{"text":"struct","kind":"keyword"},{"kind":"text","text":" "},{"text":"Amiibo","kind":"identifier"}],"url":"\/documentation\/amiiboservice\/amiibo","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"type":"topic","abstract":[{"type":"text","text":"A model that represents an amiibo."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","kind":"symbol","title":"Amiibo","role":"symbol"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Platform-swift.struct":{"fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Platform"}],"url":"\/documentation\/amiiboservice\/amiibo\/platform-swift.struct","navigatorTitle":[{"kind":"identifier","text":"Platform"}],"type":"topic","abstract":[{"text":"A model that represents a collection of ","type":"text"},{"type":"codeVoice","code":"Switch"},{"text":", ","type":"text"},{"type":"codeVoice","code":"Switch 2"},{"text":", ","type":"text"},{"type":"codeVoice","code":"3DS"},{"text":", and ","type":"text"},{"code":"Wii U","type":"codeVoice"},{"text":" games related to an amiibo.","type":"text"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct","kind":"symbol","title":"Amiibo.Platform","role":"symbol"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Platform-swift.struct/!=(_:_:)":{"role":"symbol","abstract":[],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct\/!=(_:_:)","title":"!=(_:_:)","type":"topic","url":"\/documentation\/amiiboservice\/amiibo\/platform-swift.struct\/!=(_:_:)","fragments":[{"text":"static","kind":"keyword"},{"text":" ","kind":"text"},{"text":"func","kind":"keyword"},{"text":" ","kind":"text"},{"text":"!=","kind":"identifier"},{"text":" ","kind":"text"},{"text":"(","kind":"text"},{"text":"borrowing","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Self","kind":"typeIdentifier"},{"text":", ","kind":"text"},{"text":"borrowing","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Self","kind":"typeIdentifier"},{"text":") -> ","kind":"text"},{"preciseIdentifier":"s:Sb","text":"Bool","kind":"typeIdentifier"}],"kind":"symbol"}}}
|
||||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
|||||||
|
{"metadata":{"fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"switch2"},{"kind":"text","text":": ["},{"kind":"typeIdentifier","text":"Game","preciseIdentifier":"s:13AmiiboService0A0V4GameV"},{"kind":"text","text":"]"}],"externalID":"s:13AmiiboService0A0V8PlatformV7switch2SayAC4GameVGvp","symbolKind":"property","modules":[{"name":"AmiiboService"}],"roleHeading":"Instance Property","title":"switch2","role":"symbol"},"abstract":[{"text":"A list of ","type":"text"},{"code":"Switch 2","type":"codeVoice"},{"text":" games related to an amiibo.","type":"text"}],"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct\/switch2","interfaceLanguage":"swift"},"schemaVersion":{"minor":3,"patch":0,"major":0},"sections":[],"kind":"symbol","hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct"]]},"primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"languages":["swift"],"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"switch2"},{"kind":"text","text":": ["},{"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game","kind":"typeIdentifier","text":"Game","preciseIdentifier":"s:13AmiiboService0A0V4GameV"},{"kind":"text","text":"]"}]}]}],"variants":[{"paths":["\/documentation\/amiiboservice\/amiibo\/platform-swift.struct\/switch2"],"traits":[{"interfaceLanguage":"swift"}]}],"references":{"doc://AmiiboService/documentation/AmiiboService":{"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interact with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","url":"\/documentation\/amiiboservice","kind":"symbol","title":"AmiiboService","role":"collection"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"fragments":[{"text":"struct","kind":"keyword"},{"kind":"text","text":" "},{"text":"Amiibo","kind":"identifier"}],"url":"\/documentation\/amiiboservice\/amiibo","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"type":"topic","abstract":[{"type":"text","text":"A model that represents an amiibo."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","kind":"symbol","title":"Amiibo","role":"symbol"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Game":{"role":"symbol","navigatorTitle":[{"kind":"identifier","text":"Game"}],"url":"\/documentation\/amiiboservice\/amiibo\/game","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game","abstract":[{"text":"A model that represents a game related to an amiibo.","type":"text"}],"type":"topic","title":"Amiibo.Game","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Game"}],"kind":"symbol"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Platform-swift.struct":{"fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Platform"}],"url":"\/documentation\/amiiboservice\/amiibo\/platform-swift.struct","navigatorTitle":[{"kind":"identifier","text":"Platform"}],"type":"topic","abstract":[{"text":"A model that represents a collection of ","type":"text"},{"type":"codeVoice","code":"Switch"},{"text":", ","type":"text"},{"type":"codeVoice","code":"Switch 2"},{"text":", ","type":"text"},{"type":"codeVoice","code":"3DS"},{"text":", and ","type":"text"},{"code":"Wii U","type":"codeVoice"},{"text":" games related to an amiibo.","type":"text"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct","kind":"symbol","title":"Amiibo.Platform","role":"symbol"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Platform-swift.struct/switch2":{"fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"switch2","kind":"identifier"},{"text":": [","kind":"text"},{"text":"Game","kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0A0V4GameV"},{"text":"]","kind":"text"}],"url":"\/documentation\/amiiboservice\/amiibo\/platform-swift.struct\/switch2","type":"topic","abstract":[{"text":"A list of ","type":"text"},{"code":"Switch 2","type":"codeVoice"},{"text":" games related to an amiibo.","type":"text"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct\/switch2","kind":"symbol","title":"switch2","role":"symbol"}}}
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
|||||||
{"kind":"symbol","identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/release-swift.property"},"schemaVersion":{"major":0,"patch":0,"minor":3},"abstract":[{"text":"A release date.","type":"text"}],"sections":[],"primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"tokens":[{"kind":"keyword","text":"let"},{"text":" ","kind":"text"},{"text":"release","kind":"identifier"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Amiibo","preciseIdentifier":"s:13AmiiboService0A0V","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"},{"text":".","kind":"text"},{"preciseIdentifier":"s:13AmiiboService0A0V7ReleaseV","kind":"typeIdentifier","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct","text":"Release"}],"languages":["swift"]}]}],"metadata":{"externalID":"s:13AmiiboService0A0V7releaseAC7ReleaseVvp","roleHeading":"Instance Property","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"release","kind":"identifier"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0A0V","text":"Amiibo"},{"kind":"text","text":"."},{"preciseIdentifier":"s:13AmiiboService0A0V7ReleaseV","kind":"typeIdentifier","text":"Release"}],"role":"symbol","modules":[{"name":"AmiiboService"}],"symbolKind":"property","title":"release"},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"variants":[{"paths":["\/documentation\/amiiboservice\/amiibo\/release-swift.property"],"traits":[{"interfaceLanguage":"swift"}]}],"references":{"doc://AmiiboService/documentation/AmiiboService":{"type":"topic","url":"\/documentation\/amiiboservice","abstract":[{"text":"A library that provides everything the developer needs to interact with the ","type":"text"},{"inlineContent":[{"type":"text","text":"Amiibo API"}],"type":"strong"},{"type":"text","text":" backend service."}],"kind":"symbol","role":"collection","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","title":"AmiiboService"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/release-swift.property":{"abstract":[{"type":"text","text":"A release date."}],"title":"release","fragments":[{"text":"let","kind":"keyword"},{"kind":"text","text":" "},{"kind":"identifier","text":"release"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Amiibo","preciseIdentifier":"s:13AmiiboService0A0V"},{"text":".","kind":"text"},{"text":"Release","kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0A0V7ReleaseV"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/release-swift.property","url":"\/documentation\/amiiboservice\/amiibo\/release-swift.property","kind":"symbol","type":"topic","role":"symbol"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo item.","type":"text"}],"title":"Amiibo","url":"\/documentation\/amiiboservice\/amiibo","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"kind":"symbol","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"role":"symbol","type":"topic"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Release-swift.struct":{"kind":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Release","kind":"identifier"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct","abstract":[{"text":"A model that represents a collection of release dates related to an amiibo item.","type":"text"}],"type":"topic","navigatorTitle":[{"text":"Release","kind":"identifier"}],"title":"Amiibo.Release","url":"\/documentation\/amiiboservice\/amiibo\/release-swift.struct","role":"symbol"}}}
|
{"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"abstract":[{"text":"The release dates of this amiibo across different regions.","type":"text"}],"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/release-swift.property","interfaceLanguage":"swift"},"metadata":{"externalID":"s:13AmiiboService0A0V7releaseAC7ReleaseVvp","symbolKind":"property","title":"release","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"text":"release","kind":"identifier"},{"text":": ","kind":"text"},{"text":"Release","kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0A0V7ReleaseV"}],"roleHeading":"Instance Property","modules":[{"name":"AmiiboService"}],"role":"symbol"},"sections":[],"schemaVersion":{"patch":0,"major":0,"minor":3},"primaryContentSections":[{"kind":"declarations","declarations":[{"languages":["swift"],"platforms":["macOS"],"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"release"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:13AmiiboService0A0V7ReleaseV","text":"Release","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct"}]}]}],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/release-swift.property"]}],"kind":"symbol","references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo/Release-swift.struct":{"type":"topic","navigatorTitle":[{"kind":"identifier","text":"Release"}],"title":"Amiibo.Release","kind":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"kind":"text","text":" "},{"text":"Release","kind":"identifier"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct","url":"\/documentation\/amiiboservice\/amiibo\/release-swift.struct","role":"symbol","abstract":[{"type":"text","text":"A model that represents the regional release dates of an amiibo."}]},"doc://AmiiboService/documentation/AmiiboService":{"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interact with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","url":"\/documentation\/amiiboservice","kind":"symbol","title":"AmiiboService","role":"collection"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"fragments":[{"text":"struct","kind":"keyword"},{"kind":"text","text":" "},{"text":"Amiibo","kind":"identifier"}],"url":"\/documentation\/amiiboservice\/amiibo","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"type":"topic","abstract":[{"type":"text","text":"A model that represents an amiibo."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","kind":"symbol","title":"Amiibo","role":"symbol"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/release-swift.property":{"fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"release"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Release","preciseIdentifier":"s:13AmiiboService0A0V7ReleaseV"}],"url":"\/documentation\/amiiboservice\/amiibo\/release-swift.property","type":"topic","abstract":[{"type":"text","text":"The release dates of this amiibo across different regions."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/release-swift.property","kind":"symbol","title":"release","role":"symbol"}}}
|
||||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
|||||||
|
{"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct"]]},"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct\/!=(_:_:)","interfaceLanguage":"swift"},"metadata":{"fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"text":" ","kind":"text"},{"text":"!=","kind":"identifier"},{"text":" ","kind":"text"},{"text":"(","kind":"text"},{"kind":"keyword","text":"borrowing"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":", "},{"kind":"keyword","text":"borrowing"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","text":"Bool"}],"externalID":"s:SQsRi_zRi0_zrlE2neoiySbx_xtFZ::SYNTHESIZED::s:13AmiiboService0A0V7ReleaseV","symbolKind":"op","extendedModule":"Swift","modules":[{"name":"AmiiboService","relatedModules":["Swift"]}],"roleHeading":"Operator","title":"!=(_:_:)","role":"symbol"},"sections":[],"schemaVersion":{"minor":3,"major":0,"patch":0},"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"text":"static","kind":"keyword"},{"text":" ","kind":"text"},{"text":"func","kind":"keyword"},{"text":" ","kind":"text"},{"text":"!=","kind":"identifier"},{"text":" ","kind":"text"},{"text":"(","kind":"text"},{"kind":"internalParam","text":"lhs"},{"kind":"text","text":": "},{"kind":"keyword","text":"borrowing"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Self"},{"text":", ","kind":"text"},{"kind":"internalParam","text":"rhs"},{"kind":"text","text":": "},{"kind":"keyword","text":"borrowing"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"}],"languages":["swift"],"platforms":["macOS"]}]}],"variants":[{"paths":["\/documentation\/amiiboservice\/amiibo\/release-swift.struct\/!=(_:_:)"],"traits":[{"interfaceLanguage":"swift"}]}],"kind":"symbol","references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"fragments":[{"text":"struct","kind":"keyword"},{"kind":"text","text":" "},{"text":"Amiibo","kind":"identifier"}],"url":"\/documentation\/amiiboservice\/amiibo","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"type":"topic","abstract":[{"type":"text","text":"A model that represents an amiibo."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","kind":"symbol","title":"Amiibo","role":"symbol"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Release-swift.struct":{"type":"topic","navigatorTitle":[{"kind":"identifier","text":"Release"}],"title":"Amiibo.Release","kind":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"kind":"text","text":" "},{"text":"Release","kind":"identifier"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct","url":"\/documentation\/amiiboservice\/amiibo\/release-swift.struct","role":"symbol","abstract":[{"type":"text","text":"A model that represents the regional release dates of an amiibo."}]},"doc://AmiiboService/documentation/AmiiboService":{"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interact with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","url":"\/documentation\/amiiboservice","kind":"symbol","title":"AmiiboService","role":"collection"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Release-swift.struct/!=(_:_:)":{"fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"!="},{"kind":"text","text":" "},{"kind":"text","text":"("},{"kind":"keyword","text":"borrowing"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":", "},{"kind":"keyword","text":"borrowing"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","text":"Bool"}],"url":"\/documentation\/amiiboservice\/amiibo\/release-swift.struct\/!=(_:_:)","type":"topic","abstract":[],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct\/!=(_:_:)","kind":"symbol","title":"!=(_:_:)","role":"symbol"}}}
|
||||||
@@ -1 +1 @@
|
|||||||
{"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"america"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Date","preciseIdentifier":"s:10Foundation4DateV"},{"kind":"text","text":"?"}],"modules":[{"name":"AmiiboService"}],"title":"america","role":"symbol","symbolKind":"property","roleHeading":"Instance Property","externalID":"s:13AmiiboService0A0V7ReleaseV7america10Foundation4DateVSgvp"},"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct\/america"},"sections":[],"primaryContentSections":[{"declarations":[{"platforms":["macOS"],"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"america"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Date","preciseIdentifier":"s:10Foundation4DateV"},{"kind":"text","text":"?"}],"languages":["swift"]}],"kind":"declarations"}],"abstract":[{"text":"A release date for North America, if any.","type":"text"}],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/release-swift.struct\/america"]}],"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct"]]},"schemaVersion":{"major":0,"minor":3,"patch":0},"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo item.","type":"text"}],"title":"Amiibo","url":"\/documentation\/amiiboservice\/amiibo","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"kind":"symbol","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"role":"symbol","type":"topic"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Release-swift.struct/america":{"kind":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct\/america","title":"america","url":"\/documentation\/amiiboservice\/amiibo\/release-swift.struct\/america","abstract":[{"text":"A release date for North America, if any.","type":"text"}],"role":"symbol","type":"topic","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"america","kind":"identifier"},{"text":": ","kind":"text"},{"text":"Date","kind":"typeIdentifier","preciseIdentifier":"s:10Foundation4DateV"},{"text":"?","kind":"text"}]},"doc://AmiiboService/documentation/AmiiboService":{"type":"topic","url":"\/documentation\/amiiboservice","abstract":[{"type":"text","text":"A library that provides everything the developer needs to interact with the "},{"inlineContent":[{"type":"text","text":"Amiibo API"}],"type":"strong"},{"text":" backend service.","type":"text"}],"kind":"symbol","role":"collection","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","title":"AmiiboService"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Release-swift.struct":{"kind":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Release","kind":"identifier"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct","abstract":[{"text":"A model that represents a collection of release dates related to an amiibo item.","type":"text"}],"type":"topic","navigatorTitle":[{"text":"Release","kind":"identifier"}],"title":"Amiibo.Release","url":"\/documentation\/amiiboservice\/amiibo\/release-swift.struct","role":"symbol"}}}
|
{"sections":[],"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"text":"let","kind":"keyword"},{"kind":"text","text":" "},{"kind":"identifier","text":"america"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:10Foundation4DateV","text":"Date"},{"kind":"text","text":"?"}],"platforms":["macOS"],"languages":["swift"]}]}],"abstract":[{"type":"text","text":"A release date for North America, if any."}],"kind":"symbol","identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct\/america","interfaceLanguage":"swift"},"schemaVersion":{"major":0,"patch":0,"minor":3},"metadata":{"title":"america","modules":[{"name":"AmiiboService"}],"role":"symbol","externalID":"s:13AmiiboService0A0V7ReleaseV7america10Foundation4DateVSgvp","symbolKind":"property","roleHeading":"Instance Property","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"america","kind":"identifier"},{"text":": ","kind":"text"},{"text":"Date","preciseIdentifier":"s:10Foundation4DateV","kind":"typeIdentifier"},{"text":"?","kind":"text"}]},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct"]]},"variants":[{"paths":["\/documentation\/amiiboservice\/amiibo\/release-swift.struct\/america"],"traits":[{"interfaceLanguage":"swift"}]}],"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo/Release-swift.struct":{"type":"topic","navigatorTitle":[{"kind":"identifier","text":"Release"}],"title":"Amiibo.Release","kind":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"kind":"text","text":" "},{"text":"Release","kind":"identifier"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct","url":"\/documentation\/amiiboservice\/amiibo\/release-swift.struct","role":"symbol","abstract":[{"type":"text","text":"A model that represents the regional release dates of an amiibo."}]},"doc://AmiiboService/documentation/AmiiboService":{"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interact with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","url":"\/documentation\/amiiboservice","kind":"symbol","title":"AmiiboService","role":"collection"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"fragments":[{"text":"struct","kind":"keyword"},{"kind":"text","text":" "},{"text":"Amiibo","kind":"identifier"}],"url":"\/documentation\/amiiboservice\/amiibo","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"type":"topic","abstract":[{"type":"text","text":"A model that represents an amiibo."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","kind":"symbol","title":"Amiibo","role":"symbol"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Release-swift.struct/america":{"fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"america","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:10Foundation4DateV","text":"Date","kind":"typeIdentifier"},{"text":"?","kind":"text"}],"url":"\/documentation\/amiiboservice\/amiibo\/release-swift.struct\/america","type":"topic","abstract":[{"type":"text","text":"A release date for North America, if any."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct\/america","kind":"symbol","title":"america","role":"symbol"}}}
|
||||||
@@ -1 +1 @@
|
|||||||
{"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"australia"},{"kind":"text","text":": "},{"preciseIdentifier":"s:10Foundation4DateV","kind":"typeIdentifier","text":"Date"},{"kind":"text","text":"?"}],"modules":[{"name":"AmiiboService"}],"title":"australia","role":"symbol","symbolKind":"property","roleHeading":"Instance Property","externalID":"s:13AmiiboService0A0V7ReleaseV9australia10Foundation4DateVSgvp"},"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct\/australia"},"sections":[],"primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"australia"},{"kind":"text","text":": "},{"preciseIdentifier":"s:10Foundation4DateV","kind":"typeIdentifier","text":"Date"},{"kind":"text","text":"?"}],"languages":["swift"]}]}],"abstract":[{"text":"A release date for Australia, if any.","type":"text"}],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/release-swift.struct\/australia"]}],"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct"]]},"schemaVersion":{"patch":0,"minor":3,"major":0},"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo item.","type":"text"}],"title":"Amiibo","url":"\/documentation\/amiiboservice\/amiibo","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"kind":"symbol","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"role":"symbol","type":"topic"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Release-swift.struct":{"kind":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Release","kind":"identifier"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct","abstract":[{"text":"A model that represents a collection of release dates related to an amiibo item.","type":"text"}],"type":"topic","navigatorTitle":[{"text":"Release","kind":"identifier"}],"title":"Amiibo.Release","url":"\/documentation\/amiiboservice\/amiibo\/release-swift.struct","role":"symbol"},"doc://AmiiboService/documentation/AmiiboService":{"type":"topic","url":"\/documentation\/amiiboservice","abstract":[{"type":"text","text":"A library that provides everything the developer needs to interact with the "},{"inlineContent":[{"type":"text","text":"Amiibo API"}],"type":"strong"},{"text":" backend service.","type":"text"}],"kind":"symbol","role":"collection","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","title":"AmiiboService"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Release-swift.struct/australia":{"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct\/australia","url":"\/documentation\/amiiboservice\/amiibo\/release-swift.struct\/australia","role":"symbol","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"australia","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:10Foundation4DateV","text":"Date","kind":"typeIdentifier"},{"text":"?","kind":"text"}],"title":"australia","abstract":[{"text":"A release date for Australia, if any.","type":"text"}],"kind":"symbol","type":"topic"}}}
|
{"sections":[],"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"let"},{"text":" ","kind":"text"},{"kind":"identifier","text":"australia"},{"text":": ","kind":"text"},{"text":"Date","preciseIdentifier":"s:10Foundation4DateV","kind":"typeIdentifier"},{"text":"?","kind":"text"}],"platforms":["macOS"],"languages":["swift"]}]}],"abstract":[{"text":"A release date for Australia, if any.","type":"text"}],"kind":"symbol","identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct\/australia","interfaceLanguage":"swift"},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct"]]},"metadata":{"title":"australia","modules":[{"name":"AmiiboService"}],"role":"symbol","externalID":"s:13AmiiboService0A0V7ReleaseV9australia10Foundation4DateVSgvp","symbolKind":"property","roleHeading":"Instance Property","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"kind":"identifier","text":"australia"},{"kind":"text","text":": "},{"text":"Date","preciseIdentifier":"s:10Foundation4DateV","kind":"typeIdentifier"},{"text":"?","kind":"text"}]},"schemaVersion":{"patch":0,"major":0,"minor":3},"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/release-swift.struct\/australia"]}],"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo/Release-swift.struct/australia":{"role":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/release-swift.struct\/australia","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct\/australia","abstract":[{"type":"text","text":"A release date for Australia, if any."}],"type":"topic","title":"australia","fragments":[{"kind":"keyword","text":"let"},{"text":" ","kind":"text"},{"text":"australia","kind":"identifier"},{"text":": ","kind":"text"},{"kind":"typeIdentifier","text":"Date","preciseIdentifier":"s:10Foundation4DateV"},{"text":"?","kind":"text"}],"kind":"symbol"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Release-swift.struct":{"type":"topic","navigatorTitle":[{"kind":"identifier","text":"Release"}],"title":"Amiibo.Release","kind":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"kind":"text","text":" "},{"text":"Release","kind":"identifier"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct","url":"\/documentation\/amiiboservice\/amiibo\/release-swift.struct","role":"symbol","abstract":[{"type":"text","text":"A model that represents the regional release dates of an amiibo."}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"fragments":[{"text":"struct","kind":"keyword"},{"kind":"text","text":" "},{"text":"Amiibo","kind":"identifier"}],"url":"\/documentation\/amiiboservice\/amiibo","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"type":"topic","abstract":[{"type":"text","text":"A model that represents an amiibo."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","kind":"symbol","title":"Amiibo","role":"symbol"},"doc://AmiiboService/documentation/AmiiboService":{"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interact with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","url":"\/documentation\/amiiboservice","kind":"symbol","title":"AmiiboService","role":"collection"}}}
|
||||||
+1
@@ -0,0 +1 @@
|
|||||||
|
{"metadata":{"title":"Equatable Implementations","modules":[{"name":"AmiiboService"}],"role":"collectionGroup","roleHeading":"API Collection"},"topicSections":[{"title":"Operators","identifiers":["doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct\/!=(_:_:)"],"anchor":"Operators","generated":true}],"schemaVersion":{"minor":3,"major":0,"patch":0},"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct\/Equatable-Implementations","interfaceLanguage":"swift"},"sections":[],"kind":"article","hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct"]]},"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/release-swift.struct\/equatable-implementations"]}],"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo/Release-swift.struct":{"type":"topic","navigatorTitle":[{"kind":"identifier","text":"Release"}],"title":"Amiibo.Release","kind":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"kind":"text","text":" "},{"text":"Release","kind":"identifier"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct","url":"\/documentation\/amiiboservice\/amiibo\/release-swift.struct","role":"symbol","abstract":[{"type":"text","text":"A model that represents the regional release dates of an amiibo."}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"fragments":[{"text":"struct","kind":"keyword"},{"kind":"text","text":" "},{"text":"Amiibo","kind":"identifier"}],"url":"\/documentation\/amiiboservice\/amiibo","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"type":"topic","abstract":[{"type":"text","text":"A model that represents an amiibo."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","kind":"symbol","title":"Amiibo","role":"symbol"},"doc://AmiiboService/documentation/AmiiboService":{"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interact with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","url":"\/documentation\/amiiboservice","kind":"symbol","title":"AmiiboService","role":"collection"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Release-swift.struct/!=(_:_:)":{"fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"!="},{"kind":"text","text":" "},{"kind":"text","text":"("},{"kind":"keyword","text":"borrowing"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":", "},{"kind":"keyword","text":"borrowing"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:Sb","text":"Bool"}],"url":"\/documentation\/amiiboservice\/amiibo\/release-swift.struct\/!=(_:_:)","type":"topic","abstract":[],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct\/!=(_:_:)","kind":"symbol","title":"!=(_:_:)","role":"symbol"}}}
|
||||||
@@ -1 +1 @@
|
|||||||
{"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"europe"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:10Foundation4DateV","text":"Date"},{"kind":"text","text":"?"}],"modules":[{"name":"AmiiboService"}],"title":"europe","role":"symbol","symbolKind":"property","roleHeading":"Instance Property","externalID":"s:13AmiiboService0A0V7ReleaseV6europe10Foundation4DateVSgvp"},"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct\/europe","interfaceLanguage":"swift"},"sections":[],"primaryContentSections":[{"declarations":[{"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"europe"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:10Foundation4DateV","text":"Date"},{"kind":"text","text":"?"}],"platforms":["macOS"],"languages":["swift"]}],"kind":"declarations"}],"abstract":[{"type":"text","text":"A release date for Europe, if any."}],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/release-swift.struct\/europe"]}],"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct"]]},"schemaVersion":{"minor":3,"patch":0,"major":0},"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo/Release-swift.struct/europe":{"kind":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct\/europe","title":"europe","url":"\/documentation\/amiiboservice\/amiibo\/release-swift.struct\/europe","abstract":[{"type":"text","text":"A release date for Europe, if any."}],"role":"symbol","type":"topic","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"europe","kind":"identifier"},{"text":": ","kind":"text"},{"text":"Date","kind":"typeIdentifier","preciseIdentifier":"s:10Foundation4DateV"},{"text":"?","kind":"text"}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Release-swift.struct":{"kind":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Release","kind":"identifier"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct","abstract":[{"text":"A model that represents a collection of release dates related to an amiibo item.","type":"text"}],"type":"topic","navigatorTitle":[{"text":"Release","kind":"identifier"}],"title":"Amiibo.Release","url":"\/documentation\/amiiboservice\/amiibo\/release-swift.struct","role":"symbol"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo item.","type":"text"}],"title":"Amiibo","url":"\/documentation\/amiiboservice\/amiibo","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"kind":"symbol","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"role":"symbol","type":"topic"},"doc://AmiiboService/documentation/AmiiboService":{"type":"topic","url":"\/documentation\/amiiboservice","abstract":[{"type":"text","text":"A library that provides everything the developer needs to interact with the "},{"inlineContent":[{"type":"text","text":"Amiibo API"}],"type":"strong"},{"text":" backend service.","type":"text"}],"kind":"symbol","role":"collection","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","title":"AmiiboService"}}}
|
{"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct\/europe","interfaceLanguage":"swift"},"abstract":[{"text":"A release date for Europe, if any.","type":"text"}],"schemaVersion":{"major":0,"minor":3,"patch":0},"primaryContentSections":[{"declarations":[{"platforms":["macOS"],"languages":["swift"],"tokens":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"europe","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:10Foundation4DateV","kind":"typeIdentifier","text":"Date"},{"text":"?","kind":"text"}]}],"kind":"declarations"}],"sections":[],"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct"]]},"metadata":{"fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"europe","kind":"identifier"},{"text":": ","kind":"text"},{"kind":"typeIdentifier","preciseIdentifier":"s:10Foundation4DateV","text":"Date"},{"text":"?","kind":"text"}],"externalID":"s:13AmiiboService0A0V7ReleaseV6europe10Foundation4DateVSgvp","symbolKind":"property","modules":[{"name":"AmiiboService"}],"roleHeading":"Instance Property","title":"europe","role":"symbol"},"kind":"symbol","variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/release-swift.struct\/europe"]}],"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"fragments":[{"text":"struct","kind":"keyword"},{"kind":"text","text":" "},{"text":"Amiibo","kind":"identifier"}],"url":"\/documentation\/amiiboservice\/amiibo","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"type":"topic","abstract":[{"type":"text","text":"A model that represents an amiibo."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","kind":"symbol","title":"Amiibo","role":"symbol"},"doc://AmiiboService/documentation/AmiiboService":{"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interact with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","url":"\/documentation\/amiiboservice","kind":"symbol","title":"AmiiboService","role":"collection"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Release-swift.struct/europe":{"abstract":[{"text":"A release date for Europe, if any.","type":"text"}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct\/europe","url":"\/documentation\/amiiboservice\/amiibo\/release-swift.struct\/europe","fragments":[{"kind":"keyword","text":"let"},{"text":" ","kind":"text"},{"kind":"identifier","text":"europe"},{"text":": ","kind":"text"},{"kind":"typeIdentifier","preciseIdentifier":"s:10Foundation4DateV","text":"Date"},{"text":"?","kind":"text"}],"kind":"symbol","title":"europe","role":"symbol"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Release-swift.struct":{"type":"topic","navigatorTitle":[{"kind":"identifier","text":"Release"}],"title":"Amiibo.Release","kind":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"kind":"text","text":" "},{"text":"Release","kind":"identifier"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct","url":"\/documentation\/amiiboservice\/amiibo\/release-swift.struct","role":"symbol","abstract":[{"type":"text","text":"A model that represents the regional release dates of an amiibo."}]}}}
|
||||||
@@ -1 +1 @@
|
|||||||
{"sections":[],"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct\/japan","interfaceLanguage":"swift"},"schemaVersion":{"major":0,"patch":0,"minor":3},"metadata":{"fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"japan","kind":"identifier"},{"text":": ","kind":"text"},{"text":"Date","kind":"typeIdentifier","preciseIdentifier":"s:10Foundation4DateV"},{"text":"?","kind":"text"}],"symbolKind":"property","role":"symbol","title":"japan","externalID":"s:13AmiiboService0A0V7ReleaseV5japan10Foundation4DateVSgvp","roleHeading":"Instance Property","modules":[{"name":"AmiiboService"}]},"primaryContentSections":[{"declarations":[{"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"japan"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:10Foundation4DateV","text":"Date"},{"kind":"text","text":"?"}],"platforms":["macOS"],"languages":["swift"]}],"kind":"declarations"}],"abstract":[{"type":"text","text":"A release date for Japan, if any."}],"kind":"symbol","variants":[{"paths":["\/documentation\/amiiboservice\/amiibo\/release-swift.struct\/japan"],"traits":[{"interfaceLanguage":"swift"}]}],"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct"]]},"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo/Release-swift.struct":{"kind":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Release","kind":"identifier"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct","abstract":[{"text":"A model that represents a collection of release dates related to an amiibo item.","type":"text"}],"type":"topic","navigatorTitle":[{"text":"Release","kind":"identifier"}],"title":"Amiibo.Release","url":"\/documentation\/amiiboservice\/amiibo\/release-swift.struct","role":"symbol"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo item.","type":"text"}],"title":"Amiibo","url":"\/documentation\/amiiboservice\/amiibo","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"kind":"symbol","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"role":"symbol","type":"topic"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Release-swift.struct/japan":{"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct\/japan","url":"\/documentation\/amiiboservice\/amiibo\/release-swift.struct\/japan","role":"symbol","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"japan","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:10Foundation4DateV","text":"Date","kind":"typeIdentifier"},{"text":"?","kind":"text"}],"title":"japan","abstract":[{"text":"A release date for Japan, if any.","type":"text"}],"kind":"symbol","type":"topic"},"doc://AmiiboService/documentation/AmiiboService":{"type":"topic","url":"\/documentation\/amiiboservice","abstract":[{"type":"text","text":"A library that provides everything the developer needs to interact with the "},{"inlineContent":[{"type":"text","text":"Amiibo API"}],"type":"strong"},{"text":" backend service.","type":"text"}],"kind":"symbol","role":"collection","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","title":"AmiiboService"}}}
|
{"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct\/japan","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"A release date for Japan, if any."}],"schemaVersion":{"patch":0,"major":0,"minor":3},"primaryContentSections":[{"kind":"declarations","declarations":[{"languages":["swift"],"tokens":[{"kind":"keyword","text":"let"},{"text":" ","kind":"text"},{"kind":"identifier","text":"japan"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Date","preciseIdentifier":"s:10Foundation4DateV"},{"kind":"text","text":"?"}],"platforms":["macOS"]}]}],"kind":"symbol","sections":[],"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct"]]},"metadata":{"fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"japan"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:10Foundation4DateV","text":"Date"},{"kind":"text","text":"?"}],"modules":[{"name":"AmiiboService"}],"symbolKind":"property","title":"japan","role":"symbol","externalID":"s:13AmiiboService0A0V7ReleaseV5japan10Foundation4DateVSgvp","roleHeading":"Instance Property"},"variants":[{"paths":["\/documentation\/amiiboservice\/amiibo\/release-swift.struct\/japan"],"traits":[{"interfaceLanguage":"swift"}]}],"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo/Release-swift.struct":{"type":"topic","navigatorTitle":[{"kind":"identifier","text":"Release"}],"title":"Amiibo.Release","kind":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"kind":"text","text":" "},{"text":"Release","kind":"identifier"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct","url":"\/documentation\/amiiboservice\/amiibo\/release-swift.struct","role":"symbol","abstract":[{"type":"text","text":"A model that represents the regional release dates of an amiibo."}]},"doc://AmiiboService/documentation/AmiiboService":{"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interact with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","url":"\/documentation\/amiiboservice","kind":"symbol","title":"AmiiboService","role":"collection"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"fragments":[{"text":"struct","kind":"keyword"},{"kind":"text","text":" "},{"text":"Amiibo","kind":"identifier"}],"url":"\/documentation\/amiiboservice\/amiibo","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"type":"topic","abstract":[{"type":"text","text":"A model that represents an amiibo."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","kind":"symbol","title":"Amiibo","role":"symbol"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Release-swift.struct/japan":{"fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"japan"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:10Foundation4DateV","text":"Date"},{"kind":"text","text":"?"}],"url":"\/documentation\/amiiboservice\/amiibo\/release-swift.struct\/japan","type":"topic","abstract":[{"type":"text","text":"A release date for Japan, if any."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct\/japan","kind":"symbol","title":"japan","role":"symbol"}}}
|
||||||
@@ -1 +1 @@
|
|||||||
{"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"series"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","text":"String"}],"modules":[{"name":"AmiiboService"}],"title":"series","role":"symbol","symbolKind":"property","roleHeading":"Instance Property","externalID":"s:13AmiiboService0A0V6seriesSSvp"},"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/series","interfaceLanguage":"swift"},"sections":[],"primaryContentSections":[{"declarations":[{"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"series"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","text":"String"}],"languages":["swift"],"platforms":["macOS"]}],"kind":"declarations"}],"abstract":[{"type":"text","text":"An amiibo series."}],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/series"]}],"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"schemaVersion":{"patch":0,"major":0,"minor":3},"references":{"doc://AmiiboService/documentation/AmiiboService":{"type":"topic","url":"\/documentation\/amiiboservice","abstract":[{"type":"text","text":"A library that provides everything the developer needs to interact with the "},{"inlineContent":[{"type":"text","text":"Amiibo API"}],"type":"strong"},{"text":" backend service.","type":"text"}],"kind":"symbol","role":"collection","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","title":"AmiiboService"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/series":{"abstract":[{"text":"An amiibo series.","type":"text"}],"title":"series","url":"\/documentation\/amiiboservice\/amiibo\/series","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/series","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"series","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:SS","text":"String","kind":"typeIdentifier"}],"kind":"symbol","role":"symbol","type":"topic"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo item.","type":"text"}],"title":"Amiibo","url":"\/documentation\/amiiboservice\/amiibo","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"kind":"symbol","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"role":"symbol","type":"topic"}}}
|
{"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/series","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"The name of the amiibo series this amiibo belongs to."}],"schemaVersion":{"major":0,"patch":0,"minor":3},"primaryContentSections":[{"declarations":[{"languages":["swift"],"platforms":["macOS"],"tokens":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"series","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:SS","text":"String","kind":"typeIdentifier"}]}],"kind":"declarations"}],"kind":"symbol","sections":[],"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"metadata":{"fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"series","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:SS","text":"String","kind":"typeIdentifier"}],"roleHeading":"Instance Property","title":"series","externalID":"s:13AmiiboService0A0V6seriesSSvp","symbolKind":"property","role":"symbol","modules":[{"name":"AmiiboService"}]},"variants":[{"paths":["\/documentation\/amiiboservice\/amiibo\/series"],"traits":[{"interfaceLanguage":"swift"}]}],"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"fragments":[{"text":"struct","kind":"keyword"},{"kind":"text","text":" "},{"text":"Amiibo","kind":"identifier"}],"url":"\/documentation\/amiiboservice\/amiibo","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"type":"topic","abstract":[{"type":"text","text":"A model that represents an amiibo."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","kind":"symbol","title":"Amiibo","role":"symbol"},"doc://AmiiboService/documentation/AmiiboService":{"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interact with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","url":"\/documentation\/amiiboservice","kind":"symbol","title":"AmiiboService","role":"collection"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/series":{"title":"series","abstract":[{"type":"text","text":"The name of the amiibo series this amiibo belongs to."}],"kind":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/series","type":"topic","url":"\/documentation\/amiiboservice\/amiibo\/series","role":"symbol","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"series"},{"kind":"text","text":": "},{"preciseIdentifier":"s:SS","kind":"typeIdentifier","text":"String"}]}}}
|
||||||
@@ -1 +1 @@
|
|||||||
{"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/tail","interfaceLanguage":"swift"},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"schemaVersion":{"major":0,"minor":3,"patch":0},"metadata":{"modules":[{"name":"AmiiboService"}],"role":"symbol","symbolKind":"property","externalID":"s:13AmiiboService0A0V4tailSSvp","title":"tail","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"tail"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"}],"roleHeading":"Instance Property"},"primaryContentSections":[{"declarations":[{"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"tail"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"}],"platforms":["macOS"],"languages":["swift"]}],"kind":"declarations"}],"abstract":[{"type":"text","text":"The last 8 hexadecimal characters of an identifier."}],"kind":"symbol","variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/tail"]}],"sections":[],"references":{"doc://AmiiboService/documentation/AmiiboService":{"type":"topic","url":"\/documentation\/amiiboservice","abstract":[{"type":"text","text":"A library that provides everything the developer needs to interact with the "},{"inlineContent":[{"type":"text","text":"Amiibo API"}],"type":"strong"},{"text":" backend service.","type":"text"}],"kind":"symbol","role":"collection","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","title":"AmiiboService"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo item.","type":"text"}],"title":"Amiibo","url":"\/documentation\/amiiboservice\/amiibo","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"kind":"symbol","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"role":"symbol","type":"topic"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/tail":{"type":"topic","url":"\/documentation\/amiiboservice\/amiibo\/tail","role":"symbol","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"tail","kind":"identifier"},{"text":": ","kind":"text"},{"text":"String","kind":"typeIdentifier","preciseIdentifier":"s:SS"}],"kind":"symbol","abstract":[{"type":"text","text":"The last 8 hexadecimal characters of an identifier."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/tail","title":"tail"}}}
|
{"sections":[],"primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"languages":["swift"],"tokens":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"tail","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:SS","text":"String","kind":"typeIdentifier"}]}]}],"abstract":[{"type":"text","text":"The last 8 hexadecimal characters of the amiibo identifier."}],"kind":"symbol","schemaVersion":{"patch":0,"minor":3,"major":0},"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/tail"},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"metadata":{"fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"tail","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:SS","text":"String","kind":"typeIdentifier"}],"roleHeading":"Instance Property","title":"tail","externalID":"s:13AmiiboService0A0V4tailSSvp","symbolKind":"property","role":"symbol","modules":[{"name":"AmiiboService"}]},"variants":[{"paths":["\/documentation\/amiiboservice\/amiibo\/tail"],"traits":[{"interfaceLanguage":"swift"}]}],"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo/tail":{"fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"tail"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:SS","text":"String"}],"url":"\/documentation\/amiiboservice\/amiibo\/tail","type":"topic","abstract":[{"type":"text","text":"The last 8 hexadecimal characters of the amiibo identifier."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/tail","kind":"symbol","title":"tail","role":"symbol"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"fragments":[{"text":"struct","kind":"keyword"},{"kind":"text","text":" "},{"text":"Amiibo","kind":"identifier"}],"url":"\/documentation\/amiiboservice\/amiibo","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"type":"topic","abstract":[{"type":"text","text":"A model that represents an amiibo."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","kind":"symbol","title":"Amiibo","role":"symbol"},"doc://AmiiboService/documentation/AmiiboService":{"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interact with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","url":"\/documentation\/amiiboservice","kind":"symbol","title":"AmiiboService","role":"collection"}}}
|
||||||
@@ -1 +1 @@
|
|||||||
{"metadata":{"fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"type"},{"kind":"text","text":": "},{"preciseIdentifier":"s:SS","kind":"typeIdentifier","text":"String"}],"symbolKind":"property","role":"symbol","externalID":"s:13AmiiboService0A0V4typeSSvp","title":"type","roleHeading":"Instance Property","modules":[{"name":"AmiiboService"}]},"schemaVersion":{"patch":0,"minor":3,"major":0},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"type"},{"kind":"text","text":": "},{"preciseIdentifier":"s:SS","kind":"typeIdentifier","text":"String"}],"languages":["swift"]}]}],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/type"]}],"sections":[],"kind":"symbol","identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/type"},"abstract":[{"text":"An amiibo type.","type":"text"}],"references":{"doc://AmiiboService/documentation/AmiiboService":{"type":"topic","url":"\/documentation\/amiiboservice","abstract":[{"type":"text","text":"A library that provides everything the developer needs to interact with the "},{"inlineContent":[{"type":"text","text":"Amiibo API"}],"type":"strong"},{"text":" backend service.","type":"text"}],"kind":"symbol","role":"collection","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","title":"AmiiboService"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo item.","type":"text"}],"title":"Amiibo","url":"\/documentation\/amiiboservice\/amiibo","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"kind":"symbol","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"role":"symbol","type":"topic"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/type":{"type":"topic","url":"\/documentation\/amiiboservice\/amiibo\/type","role":"symbol","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"type","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:SS","text":"String","kind":"typeIdentifier"}],"kind":"symbol","abstract":[{"text":"An amiibo type.","type":"text"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/type","title":"type"}}}
|
{"sections":[],"primaryContentSections":[{"declarations":[{"tokens":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"type","kind":"identifier"},{"text":": ","kind":"text"},{"text":"String","kind":"typeIdentifier","preciseIdentifier":"s:SS"}],"platforms":["macOS"],"languages":["swift"]}],"kind":"declarations"}],"abstract":[{"type":"text","text":"The type of this amiibo (e.g., Figure, Card, Yarn, Band)."}],"kind":"symbol","identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/type","interfaceLanguage":"swift"},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo"]]},"metadata":{"title":"type","modules":[{"name":"AmiiboService"}],"role":"symbol","externalID":"s:13AmiiboService0A0V4typeSSvp","symbolKind":"property","roleHeading":"Instance Property","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"type","kind":"identifier"},{"text":": ","kind":"text"},{"text":"String","kind":"typeIdentifier","preciseIdentifier":"s:SS"}]},"schemaVersion":{"minor":3,"patch":0,"major":0},"variants":[{"paths":["\/documentation\/amiiboservice\/amiibo\/type"],"traits":[{"interfaceLanguage":"swift"}]}],"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"fragments":[{"text":"struct","kind":"keyword"},{"kind":"text","text":" "},{"text":"Amiibo","kind":"identifier"}],"url":"\/documentation\/amiiboservice\/amiibo","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"type":"topic","abstract":[{"type":"text","text":"A model that represents an amiibo."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","kind":"symbol","title":"Amiibo","role":"symbol"},"doc://AmiiboService/documentation/AmiiboService":{"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interact with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","url":"\/documentation\/amiiboservice","kind":"symbol","title":"AmiiboService","role":"collection"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/type":{"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/type","abstract":[{"type":"text","text":"The type of this amiibo (e.g., Figure, Card, Yarn, Band)."}],"url":"\/documentation\/amiiboservice\/amiibo\/type","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"type","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:SS","text":"String","kind":"typeIdentifier"}],"kind":"symbol","title":"type","role":"symbol"}}}
|
||||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
|||||||
|
{"sections":[],"primaryContentSections":[{"declarations":[{"platforms":["macOS"],"languages":["swift"],"tokens":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"!="},{"kind":"text","text":" "},{"kind":"text","text":"("},{"kind":"internalParam","text":"lhs"},{"kind":"text","text":": "},{"kind":"keyword","text":"borrowing"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":", "},{"kind":"internalParam","text":"rhs"},{"kind":"text","text":": "},{"kind":"keyword","text":"borrowing"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"}]}],"kind":"declarations"}],"kind":"symbol","schemaVersion":{"minor":3,"patch":0,"major":0},"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage\/!=(_:_:)","interfaceLanguage":"swift"},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage"]]},"metadata":{"title":"!=(_:_:)","modules":[{"relatedModules":["Swift"],"name":"AmiiboService"}],"extendedModule":"Swift","role":"symbol","externalID":"s:SQsRi_zRi0_zrlE2neoiySbx_xtFZ::SYNTHESIZED::s:13AmiiboService0A0V5UsageV","symbolKind":"op","roleHeading":"Operator","fragments":[{"text":"static","kind":"keyword"},{"text":" ","kind":"text"},{"text":"func","kind":"keyword"},{"text":" ","kind":"text"},{"text":"!=","kind":"identifier"},{"text":" ","kind":"text"},{"text":"(","kind":"text"},{"text":"borrowing","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Self","kind":"typeIdentifier"},{"text":", ","kind":"text"},{"text":"borrowing","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Self","kind":"typeIdentifier"},{"text":") -> ","kind":"text"},{"text":"Bool","preciseIdentifier":"s:Sb","kind":"typeIdentifier"}]},"variants":[{"paths":["\/documentation\/amiiboservice\/amiibo\/usage\/!=(_:_:)"],"traits":[{"interfaceLanguage":"swift"}]}],"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo/Usage":{"kind":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage","type":"topic","url":"\/documentation\/amiiboservice\/amiibo\/usage","abstract":[{"type":"text","text":"A model that represents the usage of an amiibo within a certain game."}],"role":"symbol","title":"Amiibo.Usage","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Usage"}],"navigatorTitle":[{"kind":"identifier","text":"Usage"}]},"doc://AmiiboService/documentation/AmiiboService":{"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interact with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","url":"\/documentation\/amiiboservice","kind":"symbol","title":"AmiiboService","role":"collection"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Usage/!=(_:_:)":{"title":"!=(_:_:)","type":"topic","abstract":[],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage\/!=(_:_:)","kind":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/usage\/!=(_:_:)","role":"symbol","fragments":[{"text":"static","kind":"keyword"},{"text":" ","kind":"text"},{"text":"func","kind":"keyword"},{"text":" ","kind":"text"},{"text":"!=","kind":"identifier"},{"text":" ","kind":"text"},{"text":"(","kind":"text"},{"text":"borrowing","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Self","kind":"typeIdentifier"},{"text":", ","kind":"text"},{"text":"borrowing","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Self","kind":"typeIdentifier"},{"text":") -> ","kind":"text"},{"text":"Bool","kind":"typeIdentifier","preciseIdentifier":"s:Sb"}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"fragments":[{"text":"struct","kind":"keyword"},{"kind":"text","text":" "},{"text":"Amiibo","kind":"identifier"}],"url":"\/documentation\/amiiboservice\/amiibo","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"type":"topic","abstract":[{"type":"text","text":"A model that represents an amiibo."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","kind":"symbol","title":"Amiibo","role":"symbol"}}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"sections":[],"kind":"article","schemaVersion":{"minor":3,"major":0,"patch":0},"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage\/Equatable-Implementations","interfaceLanguage":"swift"},"metadata":{"roleHeading":"API Collection","modules":[{"name":"AmiiboService"}],"title":"Equatable Implementations","role":"collectionGroup"},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage"]]},"topicSections":[{"identifiers":["doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage\/!=(_:_:)"],"anchor":"Operators","title":"Operators","generated":true}],"variants":[{"paths":["\/documentation\/amiiboservice\/amiibo\/usage\/equatable-implementations"],"traits":[{"interfaceLanguage":"swift"}]}],"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"fragments":[{"text":"struct","kind":"keyword"},{"kind":"text","text":" "},{"text":"Amiibo","kind":"identifier"}],"url":"\/documentation\/amiiboservice\/amiibo","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"type":"topic","abstract":[{"type":"text","text":"A model that represents an amiibo."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","kind":"symbol","title":"Amiibo","role":"symbol"},"doc://AmiiboService/documentation/AmiiboService":{"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interact with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","url":"\/documentation\/amiiboservice","kind":"symbol","title":"AmiiboService","role":"collection"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Usage":{"kind":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage","type":"topic","url":"\/documentation\/amiiboservice\/amiibo\/usage","abstract":[{"type":"text","text":"A model that represents the usage of an amiibo within a certain game."}],"role":"symbol","title":"Amiibo.Usage","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Usage"}],"navigatorTitle":[{"kind":"identifier","text":"Usage"}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Usage/!=(_:_:)":{"title":"!=(_:_:)","type":"topic","abstract":[],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage\/!=(_:_:)","kind":"symbol","url":"\/documentation\/amiiboservice\/amiibo\/usage\/!=(_:_:)","role":"symbol","fragments":[{"text":"static","kind":"keyword"},{"text":" ","kind":"text"},{"text":"func","kind":"keyword"},{"text":" ","kind":"text"},{"text":"!=","kind":"identifier"},{"text":" ","kind":"text"},{"text":"(","kind":"text"},{"text":"borrowing","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Self","kind":"typeIdentifier"},{"text":", ","kind":"text"},{"text":"borrowing","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Self","kind":"typeIdentifier"},{"text":") -> ","kind":"text"},{"text":"Bool","kind":"typeIdentifier","preciseIdentifier":"s:Sb"}]}}}
|
||||||
@@ -1 +1 @@
|
|||||||
{"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage\/explanation","interfaceLanguage":"swift"},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage"]]},"schemaVersion":{"major":0,"minor":3,"patch":0},"metadata":{"modules":[{"name":"AmiiboService"}],"role":"symbol","symbolKind":"property","externalID":"s:13AmiiboService0A0V5UsageV11explanationSSvp","title":"explanation","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"explanation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"}],"roleHeading":"Instance Property"},"primaryContentSections":[{"declarations":[{"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"explanation"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"}],"platforms":["macOS"],"languages":["swift"]}],"kind":"declarations"}],"abstract":[{"type":"text","text":"An explanation of how to use an amiibo item."}],"kind":"symbol","variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/usage\/explanation"]}],"sections":[],"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo/Usage/explanation":{"abstract":[{"type":"text","text":"An explanation of how to use an amiibo item."}],"type":"topic","url":"\/documentation\/amiiboservice\/amiibo\/usage\/explanation","role":"symbol","kind":"symbol","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"explanation","kind":"identifier"},{"text":": ","kind":"text"},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage\/explanation","title":"explanation"},"doc://AmiiboService/documentation/AmiiboService":{"type":"topic","url":"\/documentation\/amiiboservice","abstract":[{"type":"text","text":"A library that provides everything the developer needs to interact with the "},{"inlineContent":[{"type":"text","text":"Amiibo API"}],"type":"strong"},{"text":" backend service.","type":"text"}],"kind":"symbol","role":"collection","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","title":"AmiiboService"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo item.","type":"text"}],"title":"Amiibo","url":"\/documentation\/amiiboservice\/amiibo","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"kind":"symbol","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"role":"symbol","type":"topic"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Usage":{"abstract":[{"type":"text","text":"A model that represents the usage of an amiibo item within a certain game."}],"type":"topic","url":"\/documentation\/amiiboservice\/amiibo\/usage","navigatorTitle":[{"text":"Usage","kind":"identifier"}],"role":"symbol","kind":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Usage","kind":"identifier"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage","title":"Amiibo.Usage"}}}
|
{"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage\/explanation"},"abstract":[{"text":"A description of how the amiibo is used within the game.","type":"text"}],"schemaVersion":{"minor":3,"major":0,"patch":0},"primaryContentSections":[{"declarations":[{"languages":["swift"],"platforms":["macOS"],"tokens":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"explanation","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:SS","text":"String","kind":"typeIdentifier"}]}],"kind":"declarations"}],"sections":[],"kind":"symbol","metadata":{"fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"explanation","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:SS","text":"String","kind":"typeIdentifier"}],"roleHeading":"Instance Property","title":"explanation","externalID":"s:13AmiiboService0A0V5UsageV11explanationSSvp","symbolKind":"property","role":"symbol","modules":[{"name":"AmiiboService"}]},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage"]]},"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/usage\/explanation"]}],"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"fragments":[{"text":"struct","kind":"keyword"},{"kind":"text","text":" "},{"text":"Amiibo","kind":"identifier"}],"url":"\/documentation\/amiiboservice\/amiibo","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"type":"topic","abstract":[{"type":"text","text":"A model that represents an amiibo."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","kind":"symbol","title":"Amiibo","role":"symbol"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Usage":{"kind":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage","type":"topic","url":"\/documentation\/amiiboservice\/amiibo\/usage","abstract":[{"type":"text","text":"A model that represents the usage of an amiibo within a certain game."}],"role":"symbol","title":"Amiibo.Usage","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Usage"}],"navigatorTitle":[{"kind":"identifier","text":"Usage"}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Usage/explanation":{"abstract":[{"text":"A description of how the amiibo is used within the game.","type":"text"}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage\/explanation","url":"\/documentation\/amiiboservice\/amiibo\/usage\/explanation","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"explanation","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:SS","text":"String","kind":"typeIdentifier"}],"kind":"symbol","title":"explanation","role":"symbol"},"doc://AmiiboService/documentation/AmiiboService":{"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interact with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","url":"\/documentation\/amiiboservice","kind":"symbol","title":"AmiiboService","role":"collection"}}}
|
||||||
@@ -1 +1 @@
|
|||||||
{"metadata":{"fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"isWriteable"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"}],"symbolKind":"property","role":"symbol","externalID":"s:13AmiiboService0A0V5UsageV11isWriteableSbvp","title":"isWriteable","roleHeading":"Instance Property","modules":[{"name":"AmiiboService"}]},"schemaVersion":{"major":0,"minor":3,"patch":0},"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage"]]},"primaryContentSections":[{"declarations":[{"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"isWriteable"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"}],"platforms":["macOS"],"languages":["swift"]}],"kind":"declarations"}],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/amiiboservice\/amiibo\/usage\/iswriteable"]}],"sections":[],"kind":"symbol","identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage\/isWriteable","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"A flag that indicates whether an amiibo item can save game data in it."}],"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo/Usage":{"abstract":[{"type":"text","text":"A model that represents the usage of an amiibo item within a certain game."}],"type":"topic","url":"\/documentation\/amiiboservice\/amiibo\/usage","navigatorTitle":[{"text":"Usage","kind":"identifier"}],"role":"symbol","kind":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Usage","kind":"identifier"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage","title":"Amiibo.Usage"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Usage/isWriteable":{"url":"\/documentation\/amiiboservice\/amiibo\/usage\/iswriteable","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"isWriteable"},{"text":": ","kind":"text"},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"}],"kind":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage\/isWriteable","type":"topic","abstract":[{"type":"text","text":"A flag that indicates whether an amiibo item can save game data in it."}],"role":"symbol","title":"isWriteable"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo item.","type":"text"}],"title":"Amiibo","url":"\/documentation\/amiiboservice\/amiibo","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"kind":"symbol","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"role":"symbol","type":"topic"},"doc://AmiiboService/documentation/AmiiboService":{"type":"topic","url":"\/documentation\/amiiboservice","abstract":[{"type":"text","text":"A library that provides everything the developer needs to interact with the "},{"inlineContent":[{"type":"text","text":"Amiibo API"}],"type":"strong"},{"text":" backend service.","type":"text"}],"kind":"symbol","role":"collection","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","title":"AmiiboService"}}}
|
{"metadata":{"role":"symbol","fragments":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"isWriteable","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:Sb","text":"Bool","kind":"typeIdentifier"}],"title":"isWriteable","roleHeading":"Instance Property","modules":[{"name":"AmiiboService"}],"externalID":"s:13AmiiboService0A0V5UsageV11isWriteableSbvp","symbolKind":"property"},"abstract":[{"type":"text","text":"A flag that indicates whether the amiibo can save game data."}],"schemaVersion":{"minor":3,"major":0,"patch":0},"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage\/isWriteable","interfaceLanguage":"swift"},"kind":"symbol","sections":[],"hierarchy":{"paths":[["doc:\/\/AmiiboService\/documentation\/AmiiboService","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage"]]},"primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"languages":["swift"],"tokens":[{"text":"let","kind":"keyword"},{"text":" ","kind":"text"},{"text":"isWriteable","kind":"identifier"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:Sb","text":"Bool","kind":"typeIdentifier"}]}]}],"variants":[{"paths":["\/documentation\/amiiboservice\/amiibo\/usage\/iswriteable"],"traits":[{"interfaceLanguage":"swift"}]}],"references":{"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"fragments":[{"text":"struct","kind":"keyword"},{"kind":"text","text":" "},{"text":"Amiibo","kind":"identifier"}],"url":"\/documentation\/amiiboservice\/amiibo","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"type":"topic","abstract":[{"type":"text","text":"A model that represents an amiibo."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","kind":"symbol","title":"Amiibo","role":"symbol"},"doc://AmiiboService/documentation/AmiiboService":{"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interact with the "},{"type":"strong","inlineContent":[{"type":"text","text":"Amiibo API"}]},{"type":"text","text":" backend service."}],"type":"topic","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","url":"\/documentation\/amiiboservice","kind":"symbol","title":"AmiiboService","role":"collection"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Usage/isWriteable":{"kind":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage\/isWriteable","type":"topic","url":"\/documentation\/amiiboservice\/amiibo\/usage\/iswriteable","abstract":[{"type":"text","text":"A flag that indicates whether the amiibo can save game data."}],"role":"symbol","title":"isWriteable","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"isWriteable"},{"kind":"text","text":": "},{"preciseIdentifier":"s:Sb","kind":"typeIdentifier","text":"Bool"}]},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Usage":{"kind":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage","type":"topic","url":"\/documentation\/amiiboservice\/amiibo\/usage","abstract":[{"type":"text","text":"A model that represents the usage of an amiibo within a certain game."}],"role":"symbol","title":"Amiibo.Usage","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Usage"}],"navigatorTitle":[{"kind":"identifier","text":"Usage"}]}}}
|
||||||
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
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user