(gadgets: &Vec<FuncGadget>, deopt: &Deopt)
| 425 | } |
| 426 | |
| 427 | pub fn dump_func_gadgets(gadgets: &Vec<FuncGadget>, deopt: &Deopt) -> Result<()> { |
| 428 | let save_path = deopt.get_library_func_gadget_path()?; |
| 429 | let mut dump_str = String::new(); |
| 430 | dump_str.push_str("Raw Func Gadgets:\n"); |
| 431 | for gadget in gadgets { |
| 432 | dump_str.push_str(&gadget.gen_raw_type_signature()); |
| 433 | dump_str.push('\n'); |
| 434 | } |
| 435 | dump_str.push_str("\n\nAlias Func Gadget:\n"); |
| 436 | for gadget in gadgets { |
| 437 | dump_str.push_str(&gadget.gen_signature()); |
| 438 | dump_str.push('\n'); |
| 439 | } |
| 440 | std::fs::write(&save_path, dump_str)?; |
| 441 | let dump_str = serde_json::to_string(gadgets)?; |
| 442 | let save_path = save_path.with_extension("json"); |
| 443 | std::fs::write(save_path, dump_str)?; |
| 444 | Ok(()) |
| 445 | } |
| 446 | |
| 447 | pub fn load_func_gadgets(deopt: &Deopt) -> Result<Vec<FuncGadget>> { |
| 448 | let save_path = deopt.get_library_func_gadget_path()?.with_extension("json"); |
no test coverage detected