luaur_analysis/functions/
write_json_emitter_alt_c.rs1extern crate alloc;
20
21use crate::functions::write_dcr_logger_alt_j::write_json_emitter_dense_hash_map_k_v;
22use crate::methods::object_emitter_write_pair::WriteJson;
23use crate::records::json_emitter::JsonEmitter;
24use alloc::string::String;
25use luaur_common::records::dense_hash_map::DenseHashMap;
26use luaur_common::records::dense_hash_table::DenseDefault;
27
28pub fn write_json_emitter_unordered_map_string_t<T: WriteJson + DenseDefault>(
29 emitter: &mut JsonEmitter,
30 map: &DenseHashMap<String, T>,
31) {
32 let mut o = emitter.write_object();
33
34 for (k, v) in map.iter() {
35 o.write_pair(k.as_str(), v);
36 }
37
38 o.finish();
39}
40
41impl<T: WriteJson + DenseDefault> WriteJson for DenseHashMap<String, T> {
44 fn write_json(&self, emitter: &mut JsonEmitter) {
45 write_json_emitter_unordered_map_string_t(emitter, self);
46 }
47}
48
49impl<T: WriteJson> WriteJson for std::collections::HashMap<String, T> {
52 fn write_json(&self, emitter: &mut JsonEmitter) {
53 let mut o = emitter.write_object();
54 for (k, v) in self.iter() {
55 o.write_pair(k.as_str(), v);
56 }
57 o.finish();
58 }
59}
60
61impl<K, V: WriteJson + DenseDefault> WriteJson for DenseHashMap<*const K, V> {
65 fn write_json(&self, emitter: &mut JsonEmitter) {
66 write_json_emitter_dense_hash_map_k_v(emitter, self);
67 }
68}