mirror of
https://github.com/nicklockwood/SwiftFormat.git
synced 2026-05-17 10:30:35 +00:00
42 lines
1.1 KiB
Swift
42 lines
1.1 KiB
Swift
func processWeather() async {
|
|
let records = await fetchWeatherHistory()
|
|
let average = await calculateAverageTemperature(for: records)
|
|
let response = await upload(result: average)
|
|
print("Server response: \(response)")
|
|
}
|
|
|
|
enum UserError: Error {
|
|
case invalidCount, dataTooLong
|
|
}
|
|
|
|
func fetchUsers(count: Int) async throws -> [String] {
|
|
if count > 3 {
|
|
// Don't attempt to fetch too many users
|
|
throw UserError.invalidCount
|
|
}
|
|
|
|
// Complex networking code here; we'll just send back up to `count` users
|
|
return Array(["Antoni", "Karamo", "Tan"].prefix(count))
|
|
}
|
|
|
|
func save(users: [String]) async throws -> String {
|
|
let savedUsers = users.joined(separator: ",")
|
|
|
|
if savedUsers.count > 32 {
|
|
throw UserError.dataTooLong
|
|
} else {
|
|
// Actual saving code would go here
|
|
return "Saved \(savedUsers)!"
|
|
}
|
|
}
|
|
|
|
func updateUsers() async {
|
|
do {
|
|
let users = try await fetchUsers(count: 3)
|
|
let result = try await save(users: users)
|
|
print(result)
|
|
} catch {
|
|
print("Oops!")
|
|
}
|
|
}
|