package com.m2pool.lease.netty.parser;

import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;

public interface MessageParser<T> {
    /**
     * 解析 JSON 字符串为指定类型的消息对象
     * @param objectMapper Jackson 的 ObjectMapper 实例
     * @param jsonStr 待解析的 JSON 字符串
     * @return 解析后的消息对象
     * @throws Exception 解析过程中可能抛出的异常
     */
    T parse(ObjectMapper objectMapper, String jsonStr) throws Exception;

    /**
     * 获取该解析器对应的类型引用
     * @return 类型引用
     */
    TypeReference<T> getTypeReference();
}
