//===----------------------------------------------------------------------===//
//
// This source file is part of the SwiftLibs open source project
//
// Copyright (c) 2023 Röck+Cöde VoF. and the SwiftLibs project authors
// Licensed under the EUPL 1.2 or later.
//
// See LICENSE.txt for license information
// See CONTRIBUTORS.txt for the list of SwiftLibs project authors
//
//===----------------------------------------------------------------------===//

import SwiftLibsDependency

// MARK: - Protocols

protocol TestService {}

// MARK: - Services

struct SomeService: TestService, Equatable {}
struct SomeOtherService: TestService, Equatable {}

// MARK: - DependencyKey

struct TestServiceKey: DependencyKey {
    static var currentValue: TestService = SomeService()
}

// MARK: - DependencyService+Keys

extension DependencyService {
    var testService: TestService {
        get { Self[TestServiceKey.self] }
        set { Self[TestServiceKey.self] = newValue }
    }
}

