use std::collections::HashMap;
use rocketmq_model::common::message::message_ext::MessageExt;
use rocketmq_model::common::message::message_queue::MessageQueue;
use crate::base::query_result::QueryResult;
#[allow(dead_code)]
pub trait MQAdmin {
fn create_topic(
&self,
key: &str,
new_topic: &str,
queue_num: i32,
attributes: HashMap<String, String>,
) -> crate::ClientResult<()>;
fn create_topic_with_flag(
&self,
key: &str,
new_topic: &str,
queue_num: i32,
topic_sys_flag: i32,
attributes: HashMap<String, String>,
) -> crate::ClientResult<()>;
fn search_offset(&self, mq: &MessageQueue, timestamp: u64) -> crate::ClientResult<i64>;
fn max_offset(&self, mq: &MessageQueue) -> crate::ClientResult<i64>;
fn min_offset(&self, mq: &MessageQueue) -> crate::ClientResult<i64>;
fn earliest_msg_store_time(&self, mq: &MessageQueue) -> crate::ClientResult<u64>;
fn query_message(
&self,
topic: &str,
key: &str,
max_num: i32,
begin: u64,
end: u64,
) -> crate::ClientResult<QueryResult>;
fn view_message(&self, topic: &str, msg_id: &str) -> crate::ClientResult<MessageExt>;
}