#![allow(dead_code)]
use proc_macro2::TokenStream;
use quote::quote;
pub fn add_tracking_comment(code: TokenStream) -> TokenStream {
quote! {
#code
}
}
pub fn generate_indented_block(stmts: &[syn::Stmt]) -> TokenStream {
quote! {
{
#(#stmts)*
}
}
}
#[cfg(test)]
mod tests {
use super::*;
use syn::parse_quote;
#[test]
fn test_add_tracking_comment() {
let code: TokenStream = quote! { let x = 5; };
let result = add_tracking_comment(code);
let result_str = result.to_string();
assert!(result_str.contains("let x = 5"));
}
#[test]
fn test_generate_indented_block() {
let stmts: Vec<syn::Stmt> = vec![parse_quote! { let x = 5; }, parse_quote! { let y = 10; }];
let code = generate_indented_block(&stmts);
let result = code.to_string();
assert!(result.contains('{'));
assert!(result.contains('}'));
assert!(result.contains("let x"));
assert!(result.contains("let y"));
}
#[test]
fn test_generate_indented_block_empty() {
let stmts: Vec<syn::Stmt> = vec![];
let code = generate_indented_block(&stmts);
let result = code.to_string();
assert!(result.contains('{'));
assert!(result.contains('}'));
}
#[test]
fn test_generate_indented_block_single() {
let stmts: Vec<syn::Stmt> = vec![parse_quote! { let x = 5; }];
let code = generate_indented_block(&stmts);
let result = code.to_string();
assert!(result.contains("let x = 5"));
}
}