This commit is contained in:
azw 2023-11-02 00:42:58 +00:00
parent 1b61eecd09
commit 6df64c08ad

View File

@ -74,6 +74,7 @@ use crate::cs::cs_msgid as cs_msgid;
struct Handler { struct Handler {
msg_id: i32, msg_id: i32,
handler_id: i32, handler_id: i32,
cb: Box::<dyn FnMut (&f9::MsgHdr, &dyn MsgHandler)>,
} }
static mut HANDLERS: Vec<Option<Handler>> = Vec::new(); static mut HANDLERS: Vec<Option<Handler>> = Vec::new();
@ -125,31 +126,29 @@ pub trait MsgHandler {`;
data += ` data += `
pub fn registe_handlers() { pub fn registe_handlers() {
unsafe { unsafe {
HANDLERS.reserve(2000); HANDLERS.reserve(2000);
for i in 0..1999 { for i in 0..1999 {
HANDLERS.push(None); HANDLERS.push(None);
} }
`; `;
this.csProtoPb.nested.cs.nestedArray.forEach( this.csProtoPb.nested.cs.nestedArray.forEach(
(item) => { (item) => {
if (item.name[0] == 'C' && if (item.name[0] == 'C' &&
item.name[1] == 'M') { item.name[1] == 'M') {
data += ` data += `
HANDLERS[cs_msgid::CMMessageId_e::_${item.name} as usize] = Some( HANDLERS[cs_msgid::CMMessageId_e::_${item.name} as usize] = Some(
Handler { Handler {
msg_id: cs_msgid::CMMessageId_e::_${item.name} as i32, msg_id: cs_msgid::CMMessageId_e::_${item.name} as i32,
handler_id: 0, handler_id: 0,
/* cb: Box::new(|_: &f9::MsgHdr, _: &dyn MsgHandler| {
Cb: func (hdr *f5.MsgHdr, handler MsgHandler) { }),
handler.${item.name}(hdr, hdr.Msg.(*${item.name})) });
},
*/
});
`; `;
} }
}); });
data += ` data += `
}}`; }
}`;
fs.writeFileSync('./src/cs/cs_auto_gen.rs', data); fs.writeFileSync('./src/cs/cs_auto_gen.rs', data);
} }