Crate include_tt

Source
Expand description

Macro for embedding (trees, strings, arrays) into macro trees directly from files.

use include_tt::include_tt;
use std::fmt::Write;

// Example demonstrating the usage of include_tt! macro for embedding content from files.
{
	// Embedding trees from a file in an arbitrary place of other macros.
	let a = 10;
	let b = 20;
	let mut end_str = String::new();

	// Using include_tt! to embed content into a macro.
	include_tt! {
		let _e = write!(
			&mut end_str,

			"arg1: {}, arg2: {}",

			// This file contains `a, b`.
			#include!("./examples/full.tt") // this file contains `a, b`.
		);
	}

	// Asserting the result matches the expected output.
	assert_eq!(end_str, "arg1: 10, arg2: 20");
}

{
	// Loading a string from "full.tt" using include_tt! macro.
	let str = include_tt!(
		#include_str!("./examples/full.tt") // this file contains `a, b`.
	);

	// Asserting the result matches the expected output.
	assert_eq!(str, "a, b");
}

{
	// Loading a array from "full.tt" using include_tt! macro.
	let array: &'static [u8; 4] = include_tt!(
		#include_arr!("./examples/full.tt") // this file contains `a, b`.
	);

	// Asserting the result matches the expected output.
	assert_eq!(array, b"a, b");
}

Macrosยง

include_tt
Macro for including trees, strings, arrays from files.