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}