use crate::parser::lformat_impl;
use proc_macro::TokenStream;
use std::collections::VecDeque;
pub fn info_sync_impl(input: TokenStream) -> TokenStream {
let mut input: VecDeque<_> = input.into_iter().collect();
let lformat_result = lformat_impl(&mut input, "formatter".to_string());
let src = format!(
r#"
#[cfg(debug_assertions)]
{{
if logwise::log_enabled!(logwise::Level::Info) {{
let mut record = logwise::hidden::info_sync_pre(file!(),line!(),column!());
let mut formatter = logwise::hidden::PrivateFormatter::new(&mut record);
{LFORMAT_EXPAND}
logwise::hidden::info_sync_post(record);
}}
}}
"#,
LFORMAT_EXPAND = lformat_result.output
);
src.parse().unwrap()
}
pub fn info_async_impl(input: TokenStream) -> TokenStream {
let mut input: VecDeque<_> = input.into_iter().collect();
let lformat_result = lformat_impl(&mut input, "formatter".to_string());
let src = format!(
r#"
#[cfg(debug_assertions)] {{
if logwise::log_enabled!(logwise::Level::Info) {{
let mut record = logwise::hidden::info_sync_pre(file!(),line!(),column!());
let mut formatter = logwise::hidden::PrivateFormatter::new(&mut record);
{LFORMAT_EXPAND}
logwise::hidden::info_async_post(record).await;
}}
}}
"#,
LFORMAT_EXPAND = lformat_result.output
);
src.parse().unwrap()
}