pub enum FileType { C, Cpp, Else, } impl FileType { pub fn is_else(&self) -> bool { match self { Self::Else => { return true; } _ => { return false; } } } } // 判断文件名是否为.c或.cpp结尾 pub fn file_is_c_or_cpp(file_name: &String) -> FileType { let t: Vec<&u8> = file_name.as_bytes().iter().collect(); if t.len() >= 2 && *t[t.len() - 2] == b'.' && *t[t.len() - 1] == b'c' { return FileType::C; } if t.len() >= 4 && *t[t.len() - 4] == b'.' && *t[t.len() - 3] == b'c' && *t[t.len() - 2] == b'p' && *t[t.len() - 1] == b'p' { return FileType::Cpp; } return FileType::Else; } // 生成可执行程序的文件名(仅windows上有.exe结尾) pub fn make_app_file_name(file_name: &str) -> String { if cfg!(target_os = "windows") { return String::from(file_name) + ".exe"; } return String::from(file_name); }