luaur_common/methods/scope_scope_time_trace.rs
1//! Source: `Common/include/Luau/TimeTrace.h:148-159` (hand-ported)
2//! C++:
3//! ```cpp
4//! explicit Scope(uint16_t token) : context(getThreadContext())
5//! {
6//! if (!FFlag::DebugLuauTimeTracing) return;
7//! context.eventEnter(token);
8//! }
9//! ```
10use crate::functions::get_thread_context::get_thread_context;
11use crate::records::scope::Scope;
12use crate::FFlag::DebugLuauTimeTracing;
13
14impl Scope {
15 pub fn scope(token: u16) -> Self {
16 let context = get_thread_context();
17 let scope = Scope {
18 context: context as *mut _,
19 };
20
21 if !DebugLuauTimeTracing.get() {
22 return scope;
23 }
24
25 context.event_enter_u16(token);
26 scope
27 }
28}