/*
 *  Copyright (c) Huawei Technologies Co., Ltd. 2025. All rights reserved.
 *  This source file is part of the Cangjie project, licensed under Apache-2.0
 *  with Runtime Library Exception.
 *
 *  See https://cangjie-lang.cn/pages/LICENSE for license information.
 */

package stdx.string_intern

/**
 * @brief  Cache Interface Definition
 */
internal interface Cache<K, V> where K <: Hashable & Equatable<K> {
    func putObject(key: K, value: V): Unit

    func getObject(key: K): ?V

    func removeObject(key: K): Unit

    func initialize(cacheConfigs: ICacheConfig): Unit

    func clear(): Unit

    func size(): Int64
}