40 lines · 1.6 KB · Swift
RawDownload
import CodexBarCoreimport Foundation @MainActorextension UsageStore {    private func clearProviderState(_ provider: UsageProvider) {        self.refreshingProviders.remove(provider)        self.snapshots.removeValue(forKey: provider)        self.errors[provider] = nil        self.knownLimitsAvailabilityByProvider.removeValue(forKey: provider)        self.lastSourceLabels.removeValue(forKey: provider)        self.lastFetchAttempts.removeValue(forKey: provider)        self.accountSnapshots.removeValue(forKey: provider)        self.tokenSnapshots.removeValue(forKey: provider)        self.tokenErrors[provider] = nil        self.providerStorageFootprints.removeValue(forKey: provider)        self.failureGates[provider]?.reset()        self.tokenFailureGates[provider]?.reset()        self.statuses.removeValue(forKey: provider)        self.statusComponents.removeValue(forKey: provider)        self.lastKnownSessionRemaining.removeValue(forKey: provider)        self.lastKnownSessionWindowSource.removeValue(forKey: provider)        self.lastTokenFetchAt.removeValue(forKey: provider)    }     func clearDisabledProviderState(enabledProviders: Set<UsageProvider>) {        for provider in UsageProvider.allCases where !enabledProviders.contains(provider) {            self.clearProviderState(provider)        }    }     func clearUnavailableProviderState(        displayEnabledProviders: Set<UsageProvider>,        availableProviders: Set<UsageProvider>)    {        for provider in displayEnabledProviders where !availableProviders.contains(provider) {            self.clearProviderState(provider)        }    }}