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