2023-04-17 16:49:49 +08:00

44 lines
1.0 KiB
Rust

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);
}