From a77da502ed4f72c68c9a87bd3a594e6386473d7e Mon Sep 17 00:00:00 2001 From: Keivan-sf Date: Sun, 8 Oct 2023 20:46:52 +0330 Subject: [PATCH] chore: add protocols enum --- src/main.rs | 17 ++++++++++++++++- src/parser/mod.rs | 18 ++++++++++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 src/parser/mod.rs 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; +}