Skip to content

Commit

Permalink
feat: implement trust rank utility
Browse files Browse the repository at this point in the history
  • Loading branch information
makinosp committed Aug 4, 2024
1 parent 2ad4e8e commit 765e85b
Showing 1 changed file with 43 additions and 0 deletions.
43 changes: 43 additions & 0 deletions Sources/VRCKit/Utils/TrustRank.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
//
// TrustRank.swift
// VRCKit
//
// Created by makinosp on 2024/08/04.
//

public enum TrustRank {
case trusted, known, user, newUser, visitor, unknown
}

public extension ProfileElementRepresentable {
var trustRank: TrustRank {
let rankTags: [SystemTag] = [
.systemTrustVeteran,
.systemTrustTrusted,
.systemTrustKnown,
.systemTrustBasic
]
let rankTag = rankTags.first(where: { tags.systemTags.contains($0) })
guard let rankTag = rankTag else { return .visitor }
return switch rankTag {
case .systemTrustVeteran: .trusted
case .systemTrustTrusted: .known
case .systemTrustKnown: .user
case .systemTrustBasic: .newUser
default: .unknown
}
}
}

extension TrustRank: CustomStringConvertible {
public var description: String {
switch self {
case .trusted: "Trusted"
case .known: "Known"
case .user: "User"
case .newUser: "New User"
case .visitor: "Visitor"
case .unknown: "Unknown"
}
}
}

0 comments on commit 765e85b

Please sign in to comment.