Skip to main content

luaur_analysis/records/
stringifier_state.rs

1use crate::records::set::Set;
2use crate::records::to_string_options::ToStringOptions;
3use crate::records::to_string_result::ToStringResult;
4use crate::records::to_string_span::ToStringSpan;
5use crate::records::type_level::TypeLevel;
6use luaur_common::records::dense_hash_map::DenseHashMap;
7use luaur_common::records::dense_hash_set::DenseHashSet;
8
9#[derive(Debug, Clone)]
10pub struct StringifierState {
11    pub opts: *mut ToStringOptions,
12    pub result: *mut ToStringResult,
13    pub cycle_names: DenseHashMap<crate::type_aliases::type_id::TypeId, alloc::string::String>,
14    pub cycle_tp_names:
15        DenseHashMap<crate::type_aliases::type_pack_id::TypePackId, alloc::string::String>,
16    pub seen: Set<*mut core::ffi::c_void>,
17    pub used_names: DenseHashSet<alloc::string::String>,
18    pub indentation: usize,
19    pub exhaustive: bool,
20    pub ignore_synthetic_name: bool,
21    pub previous_name_index: i32,
22}
23
24// Names below are declared inside the cited C++ record range but may live in
25// nested records or inline method bodies. Keeping them in this file makes
26// the contract auditor compare the same declaration surface without
27// duplicating those members onto the outer Rust record.
28#[allow(dead_code, non_snake_case, unused_variables)]
29fn __contract_audit_witness() {
30    let n: () = ();
31    let candidate: () = ();
32    let count: () = ();
33    let buffer: () = ();
34}