cpclib_runner/runner/disassembler/
mod.rs

1use 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}