track_borrow

Function track_borrow 

Source
pub fn track_borrow<'a, T: ?Sized>(name: &str, value: &'a T) -> &'a T
Expand description

Track an immutable borrow.

Records a Borrow event with mutable: false and returns the reference unchanged. Use this when creating a shared reference (&T).

§Arguments

  • name - A descriptive name for the borrow
  • value - The reference being tracked (returned unchanged)

§Returns

The input reference, unchanged.

§Examples

let data = track_new("data", vec![1, 2, 3]);
let r1 = track_borrow("r1", &data);
let r2 = track_borrow("r2", &data); // Multiple immutable borrows OK
println!("{:?}, {:?}", r1, r2);

let events = get_events();
assert!(events[1].is_borrow());
assert!(events[2].is_borrow());