Skip to main content

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}