// use redis::RedisResult;
// use redis::RedisWrite;
// use redis::ToRedisArgs;
// use std::io::Write;

// //胜率
// pub type WinDistType = [i64; 3];

// //同构id 与胜率分布id 映射
// pub struct RoyalIsoWinDistMapper {
//     pub iso_id: i64,
//     pub win_dist_id: i64,
// }

// pub type RIso2WDis = RoyalIsoWinDistMapper;

// impl RIso2WDis {
//     pub fn new(iso: i64, win: i64) -> Self {
//         Self {
//             iso_id: iso,
//             win_dist_id: win,
//         }
//     }
// }

// //胜率分布id 与 胜率
// #[derive(Debug)]
// pub struct RoyalWinDist {
//     pub win_dist_id: i64,
//     pub win_dist: WinDistType,
// }
// pub type RWDist = RoyalWinDist;


// impl RWDist {
//     pub fn new(id: i64, win: WinDistType) -> Self {
//         Self {
//             win_dist_id: id,
//             win_dist: win,
//         }
//     }
// }

// impl ToRedisArgs for RWDist {
//     fn to_redis_args(&self) -> Vec<Vec<u8>> {
//         let mut args = vec![];
//         //args.push(b"LPUSH".to_vec());
//         //args.push(self.win_dist_id.as_bytes().to_vec());
//         args.push(self.win_dist[0].to_string().into_bytes());
//         args.push(self.win_dist[1].to_string().into_bytes());
//         args.push(self.win_dist[2].to_string().into_bytes());
//         args
//     }

//     fn write_redis_args<W>(&self, out: &mut W)
//     where
//         W: ?Sized + RedisWrite,
//     {
//         let args = self.to_redis_args();
//     }
// }

// /*
// impl ToRedisArgs for RWDist {
//     /*
//     fn to_redis_args(&self) -> redis::RedisResult<Vec<redis::Value>> {
//         let mut args = Vec::new();
//         for item in &self.0 {
//             args.push(redis::Value::Data(item.as_bytes().to_vec()));
//         }
//         Ok(args)
//     }
//     */
//     fn write_redis_args<W: RedisWrite>(&self, out: &mut W) {
//         redis::cmd("LPUSH")
//             .arg("person")
//             .arg("name")
//             .arg(&self.name)
//             .unwrap();
//     }
//     fn to_redis_args(&self) -> RedisResult<Vec<Vec<u8>>> {
//         let mut args = Vec::new();
//         for item in &self.0 {
//             args.push(item.as_bytes().to_vec());
//         }
//         Ok(args)
//     }
// }
//  */
