package com.muyu.common.cache;


/**
 * 主键基础
 * * @className: PrimaryKeyBasic  ️✈️
 * * @author: Yang 鹏  🦅
 * * @date: 2024/9/29 16:08 ⏰
 * * @Version: 1.0
 * * @description:
 */
public interface PrimaryKeyBasic<K> {

    /**
     * 主键前缀
     *
     * @return
     */
    public String keyPre();

    /**
     * 主键编码
     *
     * @param key 缓存建
     * @return 装修建
     */
    public default String encode(K key) {
        return key.toString() + keyPre();
    }

    /**
     * 主键解码
     *
     * @param key 缓存建
     * @return 装修建
     */
    public default K decode(String key) {
        return (K) key.substring(0, key.lastIndexOf(keyPre()));
    }
}
