cpclib_runner/runner/disassembler/
mod.rs1use cpclib_common::event::EventObserver;
2use disark::{DISARK_CMD, DisarkVersion};
3
4use crate::delegated::{DelegateApplicationDescription, InternetStaticCompiledApplication};
5
6pub mod disark;
7
8#[derive(Clone, Debug, PartialEq, Eq, Hash)]
9pub enum ExternDisassembler {
10 Disark(DisarkVersion)
11}
12
13impl ExternDisassembler {
14 pub fn get_command(&self) -> &str {
15 match self {
16 ExternDisassembler::Disark(disark_version) => DISARK_CMD
17 }
18 }
19
20 pub fn configuration<E: EventObserver>(&self) -> DelegateApplicationDescription<E> {
21 match self {
22 ExternDisassembler::Disark(v) => v.configuration()
23 }
24 }
25}
26
27#[cfg(test)]
28mod test {
29 use crate::delegated::{StaticInformation, cpclib_download};
30 use crate::runner::disassembler::disark::DisarkVersion;
31
32 #[test]
33 fn test_download_disark() {
34 let urls = DisarkVersion::default().static_download_urls();
35 assert!(cpclib_download(dbg!(urls.linux.as_ref().unwrap())).is_ok());
36 assert!(cpclib_download(dbg!(urls.windows.as_ref().unwrap())).is_ok());
37 }
38}