1use std::{str::FromStr};
2
3use proc_macro::TokenStream;
4#[proc_macro]
6pub fn end_point(input:TokenStream)->TokenStream{
7 let str = input.to_string();
8 let split = str.split(":");
9 let size = split.clone().count();
10 if size!=2{
11 panic!("invalid endpoint value!")
12 }else{
13 let vec:Vec<&str> = split.collect();
14 let addr = vec[0];
15 let port = vec[1];
16 let addr:Vec<&str> = addr.split(".").collect();
17 let addr = addr.join(",");
18 let mut value = format!("port:{},ip_address:[{}]",port,addr);
19 value = "EndPoint{".to_string() + &value;
20 value = value + "}";
21 TokenStream::from_str(&value).unwrap()
22 }
23}