Skip to main content

luaur_analysis/methods/
array_emitter_write_value.rs

1//! Source: `Analysis/include/Luau/JsonEmitter.h` (lines 190-200, hand-ported)
2//!
3//! C++ template:
4//! ```cpp
5//! template<typename T>
6//! void writeValue(T value)
7//! {
8//!     if (finished) return;
9//!     emitter->writeComma();
10//!     write(*emitter, value);
11//! }
12//! ```
13
14use crate::methods::object_emitter_write_pair::WriteJson;
15use crate::records::array_emitter::ArrayEmitter;
16
17impl ArrayEmitter {
18    /// `writeValue(T value)`
19    pub fn write_value<T: WriteJson>(&mut self, value: T) {
20        if self.finished {
21            return;
22        }
23
24        let emitter = unsafe { &mut *self.emitter };
25        emitter.write_comma();
26        // write(*emitter, value)
27        value.write_json(emitter);
28    }
29}