cpclib_runner/runner/disassembler/
disark.rs1use std::sync::OnceLock;
2
3use crate::delegated::{
4 DownloadableInformation, ExecutableInformation, InternetStaticCompiledApplication,
5 MutiplatformUrls, StaticInformation
6};
7
8pub const DISARK_CMD: &str = "disark";
9
10#[derive(Clone, Debug, PartialEq, Eq, Hash, Default)]
11pub enum DisarkVersion {
12 #[default]
13 V1_0_0
14}
15
16impl StaticInformation for DisarkVersion {
17 fn static_download_urls(&self) -> &'static crate::delegated::MutiplatformUrls {
18 static URL: OnceLock<MutiplatformUrls> = OnceLock::new();
19
20 URL.get_or_init(|| {
21 MutiplatformUrls::builder()
22 .linux("https://bitbucket.org/JulienNevo/disark/downloads/Disark-linux64-1.0.0.zip")
23 .windows(
24 "https://bitbucket.org/JulienNevo/disark/downloads/Disark-windows-1.0.0.zip"
25 )
26 .macos("https://bitbucket.org/JulienNevo/disark/downloads/Disark-macos-1.0.0.zip")
27 .build()
28 })
29 }
30}
31
32impl DownloadableInformation for DisarkVersion {
33 fn target_os_archive_format(&self) -> crate::delegated::ArchiveFormat {
34 crate::delegated::ArchiveFormat::Zip
35 }
36}
37
38impl ExecutableInformation for DisarkVersion {
39 fn target_os_folder(&self) -> &'static str {
40 "disark"
41 }
42
43 fn target_os_exec_fname(&self) -> &'static str {
44 #[cfg(not(target_os = "windows"))]
45 return "disark";
46 #[cfg(target_os = "windows")]
47 return "disark.exe";
48 }
49}
50
51impl InternetStaticCompiledApplication for DisarkVersion {}