diff --git a/src/main.rs b/src/main.rs index e7a11a9..8c1ef0b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,3 +1,18 @@ +use std::process::exit; + +mod parser; fn main() { - println!("Hello, world!"); + let protocol = parser::get_uri_format("vmess://"); + match protocol { + Some(parser::protocols::Vless) => { + println!("The protocol was Vless"); + } + Some(_) => { + println!("Some recognizable protocol") + } + None => { + println!("The protocol is not supported"); + exit(0); + } + } } diff --git a/src/parser/mod.rs b/src/parser/mod.rs new file mode 100644 index 0000000..0b4f269 --- /dev/null +++ b/src/parser/mod.rs @@ -0,0 +1,18 @@ +pub enum protocols { + Vmess, + Vless, + Shadowsocks, + Trojan, + Socks, + Http, +} + +pub fn get_uri_format(uri: &str) -> Option { + if uri.starts_with("vmess://") { + return Some(protocols::Vmess); + } + if uri.starts_with("vless://") { + return Some(protocols::Vless); + } + return None; +}