pub enum Event {
Show 88 variants
New {
timestamp: u64,
var_name: String,
var_id: String,
type_name: String,
},
Borrow {
timestamp: u64,
borrower_name: String,
borrower_id: String,
owner_id: String,
mutable: bool,
},
Move {
timestamp: u64,
from_id: String,
to_name: String,
to_id: String,
},
Drop {
timestamp: u64,
var_id: String,
},
RcNew {
timestamp: u64,
var_name: String,
var_id: String,
type_name: String,
strong_count: usize,
weak_count: usize,
},
RcClone {
timestamp: u64,
var_name: String,
var_id: String,
source_id: String,
strong_count: usize,
weak_count: usize,
},
ArcNew {
timestamp: u64,
var_name: String,
var_id: String,
type_name: String,
strong_count: usize,
weak_count: usize,
},
ArcClone {
timestamp: u64,
var_name: String,
var_id: String,
source_id: String,
strong_count: usize,
weak_count: usize,
},
RefCellNew {
timestamp: u64,
var_name: String,
var_id: String,
type_name: String,
},
RefCellBorrow {
timestamp: u64,
borrow_id: String,
refcell_id: String,
is_mutable: bool,
location: String,
},
RefCellDrop {
timestamp: u64,
borrow_id: String,
location: String,
},
CellNew {
timestamp: u64,
var_name: String,
var_id: String,
type_name: String,
},
CellGet {
timestamp: u64,
cell_id: String,
location: String,
},
CellSet {
timestamp: u64,
cell_id: String,
location: String,
},
StaticInit {
timestamp: u64,
var_name: String,
var_id: String,
type_name: String,
is_mutable: bool,
},
StaticAccess {
timestamp: u64,
var_id: String,
var_name: String,
is_write: bool,
location: String,
},
ConstEval {
timestamp: u64,
const_name: String,
const_id: String,
type_name: String,
location: String,
},
RawPtrCreated {
timestamp: u64,
var_name: String,
var_id: String,
ptr_type: String,
address: usize,
location: String,
},
RawPtrDeref {
timestamp: u64,
ptr_id: String,
location: String,
is_write: bool,
},
UnsafeBlockEnter {
timestamp: u64,
block_id: String,
location: String,
},
UnsafeBlockExit {
timestamp: u64,
block_id: String,
location: String,
},
UnsafeFnCall {
timestamp: u64,
fn_name: String,
location: String,
},
FfiCall {
timestamp: u64,
fn_name: String,
location: String,
},
Transmute {
timestamp: u64,
from_type: String,
to_type: String,
location: String,
},
UnionFieldAccess {
timestamp: u64,
union_name: String,
field_name: String,
location: String,
},
AsyncBlockEnter {
timestamp: u64,
block_id: String,
location: String,
},
AsyncBlockExit {
timestamp: u64,
block_id: String,
location: String,
},
AwaitStart {
timestamp: u64,
await_id: String,
future_name: String,
location: String,
},
AwaitEnd {
timestamp: u64,
await_id: String,
location: String,
},
LoopEnter {
timestamp: u64,
loop_id: String,
loop_type: String,
location: String,
},
LoopIteration {
timestamp: u64,
loop_id: String,
iteration: usize,
location: String,
},
LoopExit {
timestamp: u64,
loop_id: String,
location: String,
},
MatchEnter {
timestamp: u64,
match_id: String,
location: String,
},
MatchArm {
timestamp: u64,
match_id: String,
arm_index: usize,
pattern: String,
location: String,
},
MatchExit {
timestamp: u64,
match_id: String,
location: String,
},
Branch {
timestamp: u64,
branch_id: String,
branch_type: String,
location: String,
},
Return {
timestamp: u64,
return_id: String,
has_value: bool,
location: String,
},
Try {
timestamp: u64,
try_id: String,
location: String,
},
IndexAccess {
timestamp: u64,
access_id: String,
container: String,
location: String,
},
FieldAccess {
timestamp: u64,
access_id: String,
base: String,
field: String,
location: String,
},
Call {
timestamp: u64,
call_id: String,
fn_name: String,
location: String,
},
Lock {
timestamp: u64,
lock_id: String,
lock_type: String,
var_name: String,
location: String,
},
Unwrap {
timestamp: u64,
unwrap_id: String,
method: String,
var_name: String,
location: String,
},
Clone {
timestamp: u64,
clone_id: String,
var_name: String,
location: String,
},
Deref {
timestamp: u64,
deref_id: String,
var_name: String,
location: String,
},
Break {
timestamp: u64,
break_id: String,
loop_label: Option<String>,
location: String,
},
Continue {
timestamp: u64,
continue_id: String,
loop_label: Option<String>,
location: String,
},
ClosureCreate {
timestamp: u64,
closure_id: String,
capture_mode: String,
location: String,
},
StructCreate {
timestamp: u64,
struct_id: String,
type_name: String,
location: String,
},
TupleCreate {
timestamp: u64,
tuple_id: String,
len: usize,
location: String,
},
LetElse {
timestamp: u64,
let_id: String,
pattern: String,
location: String,
},
Range {
timestamp: u64,
range_id: String,
range_type: String,
location: String,
},
BinaryOp {
timestamp: u64,
op_id: String,
operator: String,
location: String,
},
ArrayCreate {
timestamp: u64,
array_id: String,
len: usize,
location: String,
},
TypeCast {
timestamp: u64,
cast_id: String,
to_type: String,
location: String,
},
RegionEnter {
timestamp: u64,
region_id: String,
name: String,
location: String,
},
RegionExit {
timestamp: u64,
region_id: String,
location: String,
},
FnEnter {
timestamp: u64,
fn_id: String,
fn_name: String,
location: String,
},
FnExit {
timestamp: u64,
fn_id: String,
fn_name: String,
location: String,
},
ClosureCapture {
timestamp: u64,
closure_id: String,
var_name: String,
capture_mode: String,
location: String,
},
WeakNew {
timestamp: u64,
var_name: String,
var_id: String,
source_id: String,
weak_count: usize,
location: String,
},
WeakClone {
timestamp: u64,
var_name: String,
var_id: String,
source_id: String,
weak_count: usize,
location: String,
},
WeakUpgrade {
timestamp: u64,
weak_id: String,
success: bool,
location: String,
},
BoxNew {
timestamp: u64,
var_name: String,
var_id: String,
type_name: String,
location: String,
},
BoxIntoRaw {
timestamp: u64,
box_id: String,
location: String,
},
BoxFromRaw {
timestamp: u64,
var_name: String,
var_id: String,
location: String,
},
LockGuardAcquire {
timestamp: u64,
guard_id: String,
lock_id: String,
lock_type: String,
location: String,
},
LockGuardDrop {
timestamp: u64,
guard_id: String,
location: String,
},
PinNew {
timestamp: u64,
var_name: String,
var_id: String,
location: String,
},
PinIntoInner {
timestamp: u64,
pin_id: String,
location: String,
},
CowBorrowed {
timestamp: u64,
var_name: String,
var_id: String,
location: String,
},
CowOwned {
timestamp: u64,
var_name: String,
var_id: String,
location: String,
},
CowToMut {
timestamp: u64,
cow_id: String,
cloned: bool,
location: String,
},
ThreadSpawn {
timestamp: u64,
thread_id: String,
location: String,
},
ThreadJoin {
timestamp: u64,
thread_id: String,
location: String,
},
ChannelSenderNew {
timestamp: u64,
sender_id: String,
channel_id: String,
location: String,
},
ChannelReceiverNew {
timestamp: u64,
receiver_id: String,
channel_id: String,
location: String,
},
ChannelSend {
timestamp: u64,
sender_id: String,
location: String,
},
ChannelRecv {
timestamp: u64,
receiver_id: String,
success: bool,
location: String,
},
OnceCellNew {
timestamp: u64,
var_name: String,
var_id: String,
cell_type: String,
location: String,
},
OnceCellSet {
timestamp: u64,
cell_id: String,
success: bool,
location: String,
},
OnceCellGet {
timestamp: u64,
cell_id: String,
was_initialized: bool,
location: String,
},
OnceCellGetOrInit {
timestamp: u64,
cell_id: String,
was_initialized: bool,
location: String,
},
MaybeUninitNew {
timestamp: u64,
var_name: String,
var_id: String,
initialized: bool,
location: String,
},
MaybeUninitWrite {
timestamp: u64,
var_id: String,
location: String,
},
MaybeUninitAssumeInit {
timestamp: u64,
var_id: String,
location: String,
},
MaybeUninitAssumeInitRead {
timestamp: u64,
var_id: String,
location: String,
},
MaybeUninitAssumeInitDrop {
timestamp: u64,
var_id: String,
location: String,
},
}Expand description
An ownership or borrowing event recorded at runtime.
Variants§
New
Variable created via track_new.
Borrow
Variable borrowed via track_borrow.
Move
Ownership moved via track_move.
Drop
Variable dropped via track_drop.
RcNew
Rc::new allocation with reference counting.
Fields
RcClone
Rc::clone operation (shared ownership).
Fields
ArcNew
Arc::new allocation with atomic reference counting
Fields
ArcClone
Arc::clone operation (thread-safe shared ownership)
Fields
RefCellNew
RefCell::new allocation
RefCellBorrow
RefCell::borrow or borrow_mut operation
RefCellDrop
RefCell borrow dropped (Ref/RefMut dropped)
CellNew
Cell::new allocation
CellGet
Cell::get operation
CellSet
Cell::set operation
StaticInit
Static variable initialization
StaticAccess
Static variable access (read or write)
ConstEval
Const evaluation (compile-time constant)
RawPtrCreated
Raw pointer created
Fields
RawPtrDeref
Raw pointer dereferenced
UnsafeBlockEnter
Unsafe block entered
UnsafeBlockExit
Unsafe block exited
UnsafeFnCall
Unsafe function called
FfiCall
FFI (Foreign Function Interface) call
Transmute
Transmute operation
UnionFieldAccess
Union field access
AsyncBlockEnter
Async block entered
AsyncBlockExit
Async block exited
AwaitStart
Await expression started
AwaitEnd
Await expression completed
LoopEnter
Loop entered (for, while, loop)
LoopIteration
Loop iteration
LoopExit
Loop exited
MatchEnter
Match expression entered
MatchArm
Match arm taken
MatchExit
Match expression exited
Branch
Branch taken (if/else)
Return
Return statement
Try
Try/? operator
IndexAccess
Index access (arr[i])
FieldAccess
Field access (obj.field)
Call
Function call
Lock
Lock acquired (Mutex/RwLock)
Unwrap
Unwrap called (Option/Result)
Clone
Clone called
Deref
Dereference operation
Break
Break statement
Continue
Continue statement
ClosureCreate
Closure creation
StructCreate
Struct construction
TupleCreate
Tuple construction
LetElse
Let-else pattern
Range
Range expression
BinaryOp
Binary operation
ArrayCreate
Array creation
TypeCast
Type cast (non-pointer)
RegionEnter
Region enter
RegionExit
Region exit
FnEnter
Function entry
FnExit
Function exit
ClosureCapture
Closure variable capture
WeakNew
Weak::new or Rc::downgrade
Fields
WeakClone
Weak::clone
Fields
WeakUpgrade
Weak::upgrade attempt
BoxNew
Box::new allocation
BoxIntoRaw
Box::into_raw
BoxFromRaw
Box::from_raw
LockGuardAcquire
Mutex/RwLock guard acquired
LockGuardDrop
Mutex/RwLock guard dropped
PinNew
Pin::new
PinIntoInner
Pin::into_inner
CowBorrowed
Cow::Borrowed
CowOwned
Cow::Owned
CowToMut
Cow::to_mut (clone-on-write triggered)
ThreadSpawn
Thread spawn
ThreadJoin
Thread join
ChannelSenderNew
Channel sender created
ChannelReceiverNew
Channel receiver created
ChannelSend
Channel send
ChannelRecv
Channel receive
OnceCellNew
OnceCell::new or OnceLock::new
OnceCellSet
OnceCell::set or OnceLock::set
OnceCellGet
OnceCell::get or OnceLock::get
OnceCellGetOrInit
OnceCell::get_or_init or OnceLock::get_or_init
MaybeUninitNew
MaybeUninit::uninit or MaybeUninit::new
MaybeUninitWrite
MaybeUninit::write
MaybeUninitAssumeInit
MaybeUninit::assume_init (unsafe)
MaybeUninitAssumeInitRead
MaybeUninit::assume_init_read (unsafe)
MaybeUninitAssumeInitDrop
MaybeUninit::assume_init_drop (unsafe)
Implementations§
Source§impl Event
impl Event
Sourcepub fn is_refcounted(&self) -> bool
pub fn is_refcounted(&self) -> bool
Check if this is a reference-counted event
Sourcepub fn is_refcell(&self) -> bool
pub fn is_refcell(&self) -> bool
Check if this is a RefCell event
Sourcepub fn is_interior_mutability(&self) -> bool
pub fn is_interior_mutability(&self) -> bool
Check if this is an interior mutability event
Sourcepub fn is_raw_ptr(&self) -> bool
pub fn is_raw_ptr(&self) -> bool
Check if this is a raw pointer event
Sourcepub fn strong_count(&self) -> Option<usize>
pub fn strong_count(&self) -> Option<usize>
Get strong count if this is a reference-counted event
Sourcepub fn weak_count(&self) -> Option<usize>
pub fn weak_count(&self) -> Option<usize>
Get weak count if this is a reference-counted event
Sourcepub fn is_lock_guard(&self) -> bool
pub fn is_lock_guard(&self) -> bool
Check if this is a lock guard event
Sourcepub fn is_channel(&self) -> bool
pub fn is_channel(&self) -> bool
Check if this is a channel event
Sourcepub fn is_once_cell(&self) -> bool
pub fn is_once_cell(&self) -> bool
Check if this is a OnceCell/OnceLock event
Sourcepub fn is_maybe_uninit(&self) -> bool
pub fn is_maybe_uninit(&self) -> bool
Check if this is a MaybeUninit event