macro_rules! emit {
($($segment:expr),+ $(,)?) => { ... };
}Expand description
Emit byte slices as a structured event log entry.
Packs up to 8 slices on the stack and calls sol_log_data in a single
syscall. For indexer-friendly event emission without borsh, proc macros,
or an allocator.
ⓘ
// Deposit event: discriminator + user pubkey + amount
let disc = [0x01u8];
let amt = deposit_amount.to_le_bytes();
emit!(&disc, user.address().as_ref(), &amt);
// Withdraw event: discriminator + vault + user + amount
let disc = [0x02u8];
let amt = withdraw_amount.to_le_bytes();
emit!(&disc, vault.address().as_ref(), user.address().as_ref(), &amt);