35 lines
746 B
Swift
Raw Normal View History

2024-12-22 16:24:48 +00:00
import Foundation
public extension User {
2024-12-22 16:24:48 +00:00
struct Avatar: Hashable, Sendable {
public let colorHex: String
public let imageUrlPath: String?
2024-12-22 16:24:48 +00:00
public var imageUrl: URL? {
imageUrlPath.flatMap { URL(string: "https://avatars.devrant.com/\($0)") }
}
2024-12-11 16:00:16 +00:00
public init(colorHex: String, imageUrlPath: String?) {
self.colorHex = colorHex
self.imageUrlPath = imageUrlPath
}
}
}
extension User.Avatar {
struct CodingData: Codable {
let b: String
let i: String?
}
}
extension User.Avatar.CodingData {
var decoded: User.Avatar {
.init(
colorHex: b,
imageUrlPath: i
)
}
}