moved rust util functions to use folder structure

This commit is contained in:
Valmo Trindade
2025-04-16 16:51:21 -03:00
parent ad2f529345
commit b230515675
6 changed files with 49 additions and 47 deletions

View File

@@ -2,10 +2,10 @@ use arma_rs::{arma, Extension, Group};
mod structs;
mod tests;
mod websocket;
mod util;
mod cot_router;
mod cot_generator;
mod video_stream;
mod utils;
#[arma]
pub fn init() -> Extension {
@@ -37,9 +37,9 @@ pub fn init() -> Extension {
.command("message", websocket::message)
.command("location", websocket::location)
)
.command("local_ip", util::get_local_address)
.command("uuid", util::get_uuid)
.command("log", util::log_info)
.command("local_ip", utils::address::get_local_address)
.command("uuid", utils::uuid::get_uuid)
.command("log", utils::log::log_info)
.group(
"cot_router",
Group::new()

View File

@@ -1,43 +0,0 @@
use crate::structs::LogPayload;
use log::{error, info, warn};
use std::net::{IpAddr, UdpSocket};
pub fn log_info(data: LogPayload) -> String {
match data.status.as_str() {
"info" => info!("{}", data.message),
"warn" => warn!("{}", data.message),
"error" => error!("{}", data.message),
_ => error!("{}", "Wrong log call"),
}
"logged".to_string()
}
pub fn get_uuid() -> String {
use uuid::Uuid;
let id = Uuid::new_v4().to_string();
return id;
}
pub fn get_local_address() -> String {
fn get_local_ip() -> Result<IpAddr, String> {
let socket = UdpSocket::bind("0.0.0.0:0").map_err(|e| e.to_string())?;
socket.connect("8.8.8.8:80").map_err(|e| e.to_string())?;
socket
.local_addr()
.map(|addr| addr.ip())
.map_err(|e| e.to_string())
}
let parsed_data = get_local_ip();
match parsed_data {
Ok(ip) => {
return format!("ws://{}:4152", ip.to_string());
}
Err(_) => {
return "not provided".to_string();
}
}
}

23
src/utils/address.rs Normal file
View File

@@ -0,0 +1,23 @@
use std::net::{IpAddr, UdpSocket};
pub fn get_local_address() -> String {
fn get_local_ip() -> Result<IpAddr, String> {
let socket = UdpSocket::bind("0.0.0.0:0").map_err(|e| e.to_string())?;
socket.connect("8.8.8.8:80").map_err(|e| e.to_string())?;
socket
.local_addr()
.map(|addr| addr.ip())
.map_err(|e| e.to_string())
}
let parsed_data = get_local_ip();
match parsed_data {
Ok(ip) => {
return format!("ws://{}:4152", ip.to_string());
}
Err(_) => {
return "not provided".to_string();
}
}
}

12
src/utils/log.rs Normal file
View File

@@ -0,0 +1,12 @@
use crate::structs::LogPayload;
use log::{error, info, warn};
pub fn log_info(data: LogPayload) -> String {
match data.status.as_str() {
"info" => info!("{}", data.message),
"warn" => warn!("{}", data.message),
"error" => error!("{}", data.message),
_ => error!("{}", "Wrong log call"),
}
"logged".to_string()
}

3
src/utils/mod.rs Normal file
View File

@@ -0,0 +1,3 @@
pub mod uuid;
pub mod address;
pub mod log;

7
src/utils/uuid.rs Normal file
View File

@@ -0,0 +1,7 @@
pub fn get_uuid() -> String {
use uuid::Uuid;
let id = Uuid::new_v4().to_string();
return id;
}