feat(harmony_macros): add ipv4 macro

Adds a new `ipv4` macro to validate IPv4 addresses in proc macros. Removes unused `debug` import from `http.rs`.
This commit is contained in:
Jean-Gabriel Gill-Couture 2025-01-08 11:49:42 -05:00
parent 81d40ec163
commit a55c63ffa6
2 changed files with 15 additions and 2 deletions

View File

@ -1,5 +1,5 @@
use async_trait::async_trait;
use log::{debug, info};
use log::info;
use crate::{
executors::ExecutorError,
@ -22,7 +22,7 @@ impl HttpServer for OPNSenseFirewall {
.await
.map_err(|e| ExecutorError::UnexpectedError(e.to_string()))?;
}
Url::Remote(url) => todo!(),
Url::Remote(_url) => todo!(),
}
Ok(())
}

View File

@ -25,6 +25,19 @@ pub fn ip(input: TokenStream) -> TokenStream {
panic!("Invalid IP address: {}", ip_str);
}
#[proc_macro]
pub fn ipv4(input: TokenStream) -> TokenStream {
let input = parse_macro_input!(input as LitStr);
let ip_str = input.value();
if let Ok(_) = ip_str.parse::<std::net::Ipv4Addr>() {
let expanded = quote! { #ip_str.parse::<std::net::Ipv4Addr>().unwrap() };
return TokenStream::from(expanded);
}
panic!("Invalid IPv4 address: {}", ip_str);
}
#[proc_macro]
pub fn mac_address(input: TokenStream) -> TokenStream {
let input = parse_macro_input!(input as LitStr);