treewide: set up rustfmt and taplo with custom rules

Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I794f9152bb02e3dd91c9738369b94fc66a6a6964
This commit is contained in:
raf 2026-02-19 01:42:28 +03:00
commit ffae695240
Signed by: NotAShelf
GPG key ID: 29D95B64378DB4BF
27 changed files with 1851 additions and 1618 deletions

View file

@ -1,5 +1,5 @@
[package]
name = "pscand-macros"
name = "pscand-macros"
version.workspace = true
edition.workspace = true
license.workspace = true
@ -10,5 +10,5 @@ proc-macro = true
[dependencies]
proc-macro2 = "1"
quote = "1"
syn = { version = "2", features = ["full"] }
quote = "1"
syn = { features = [ "full" ], version = "2" }

View file

@ -1,64 +1,67 @@
use proc_macro::TokenStream;
use quote::quote;
use syn::{parse_macro_input, ItemFn};
use syn::{
parse_macro_input,
ItemFn,
};
#[proc_macro_attribute]
pub fn scanner(name: TokenStream, input: TokenStream) -> TokenStream {
let name_str = parse_macro_input!(name as syn::LitStr).value();
let input = parse_macro_input!(input as ItemFn);
let name_str = parse_macro_input!(name as syn::LitStr).value();
let input = parse_macro_input!(input as ItemFn);
let _fn_name = input.sig.ident.clone();
let body = &input.block;
let _fn_name = input.sig.ident.clone();
let body = &input.block;
let result = quote! {
#[no_mangle]
pub extern "C" fn pscand_scanner() -> *mut std::os::raw::c_void {
struct ScannerImpl;
let result = quote! {
#[no_mangle]
pub extern "C" fn pscand_scanner() -> *mut std::os::raw::c_void {
struct ScannerImpl;
impl pscand_core::Scanner for ScannerImpl {
fn name(&self) -> &'static str {
#name_str
}
impl pscand_core::Scanner for ScannerImpl {
fn name(&self) -> &'static str {
#name_str
}
fn interval(&self) -> std::time::Duration {
std::time::Duration::from_secs(1)
}
fn interval(&self) -> std::time::Duration {
std::time::Duration::from_secs(1)
}
fn init(&mut self, _config: &toml::Value) -> pscand_core::Result<()> {
Ok(())
}
fn init(&mut self, _config: &toml::Value) -> pscand_core::Result<()> {
Ok(())
}
fn collect(&self) -> pscand_core::Result<std::collections::HashMap<String, pscand_core::MetricValue>> {
#body
}
fn collect(&self) -> pscand_core::Result<std::collections::HashMap<String, pscand_core::MetricValue>> {
#body
}
fn cleanup(&mut self) -> pscand_core::Result<()> {
Ok(())
}
}
fn cleanup(&mut self) -> pscand_core::Result<()> {
Ok(())
}
}
let handle = unsafe { pscand_core::register_scanner(Box::new(ScannerImpl)) };
handle as *mut std::os::raw::c_void
}
};
let handle = unsafe { pscand_core::register_scanner(Box::new(ScannerImpl)) };
handle as *mut std::os::raw::c_void
}
};
result.into()
result.into()
}
#[proc_macro]
pub fn register_scanner(input: TokenStream) -> TokenStream {
let input = parse_macro_input!(input as ItemFn);
let fn_name = input.sig.ident.clone();
let input = parse_macro_input!(input as ItemFn);
let fn_name = input.sig.ident.clone();
let result = quote! {
#input
let result = quote! {
#input
#[no_mangle]
pub extern "C" fn pscand_scanner() -> *mut std::os::raw::c_void {
let handle = unsafe { pscand_core::register_scanner(Box::new(#fn_name())) };
handle as *mut std::os::raw::c_void
}
};
#[no_mangle]
pub extern "C" fn pscand_scanner() -> *mut std::os::raw::c_void {
let handle = unsafe { pscand_core::register_scanner(Box::new(#fn_name())) };
handle as *mut std::os::raw::c_void
}
};
result.into()
result.into()
}