pub trait WriteJson {
// Required method
fn write_json(&self, emitter: &mut JsonEmitter);
}Expand description
Rust shape of the overloaded void write(JsonEmitter&, T) family. A type
implements this iff there is a write(JsonEmitter&, T) overload for it in
C++. The single method writes the JSON encoding of self into emitter.
Required Methods§
fn write_json(&self, emitter: &mut JsonEmitter)
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".
Implementations on Foreign Types§
Source§impl WriteJson for String
impl WriteJson for String
fn write_json(&self, emitter: &mut JsonEmitter)
Source§impl WriteJson for bool
impl WriteJson for bool
fn write_json(&self, emitter: &mut JsonEmitter)
Source§impl WriteJson for f64
impl WriteJson for f64
fn write_json(&self, emitter: &mut JsonEmitter)
Source§impl WriteJson for i16
impl WriteJson for i16
fn write_json(&self, emitter: &mut JsonEmitter)
Source§impl WriteJson for i32
impl WriteJson for i32
fn write_json(&self, emitter: &mut JsonEmitter)
Source§impl WriteJson for i64
impl WriteJson for i64
fn write_json(&self, emitter: &mut JsonEmitter)
Source§impl WriteJson for isize
impl WriteJson for isize
fn write_json(&self, emitter: &mut JsonEmitter)
Source§impl WriteJson for str
impl WriteJson for str
fn write_json(&self, emitter: &mut JsonEmitter)
Source§impl WriteJson for u16
impl WriteJson for u16
fn write_json(&self, emitter: &mut JsonEmitter)
Source§impl WriteJson for u32
impl WriteJson for u32
fn write_json(&self, emitter: &mut JsonEmitter)
Source§impl WriteJson for u64
impl WriteJson for u64
fn write_json(&self, emitter: &mut JsonEmitter)
Source§impl WriteJson for usize
impl WriteJson for usize
fn write_json(&self, emitter: &mut JsonEmitter)
Source§impl<T: WriteJson + ?Sized> WriteJson for &T
write(*emitter, value) where value was bound to a reference at the call
site (writePair("k", &field)); forward through the reference.
impl<T: WriteJson + ?Sized> WriteJson for &T
write(*emitter, value) where value was bound to a reference at the call
site (writePair("k", &field)); forward through the reference.
fn write_json(&self, emitter: &mut JsonEmitter)
Source§impl<T: WriteJson> WriteJson for HashMap<String, T>
Same overload for the std::unordered_map<std::string, T> ported to the std
HashMap (used by ScopeSnapshot::bindings etc.).
impl<T: WriteJson> WriteJson for HashMap<String, T>
Same overload for the std::unordered_map<std::string, T> ported to the std
HashMap (used by ScopeSnapshot::bindings etc.).
fn write_json(&self, emitter: &mut JsonEmitter)
Source§impl<T: WriteJson> WriteJson for Option<T>
write(JsonEmitter&, const std::optional<T>&) exposed through WriteJson so
an optional can be a key value.
impl<T: WriteJson> WriteJson for Option<T>
write(JsonEmitter&, const std::optional<T>&) exposed through WriteJson so
an optional can be a key value.
fn write_json(&self, emitter: &mut JsonEmitter)
Source§impl<T: WriteJson> WriteJson for Vec<T>
write(JsonEmitter&, const std::vector<T>&) exposed through the WriteJson
overload set so a std::vector<T> can be a key value (writePair/writeValue).
impl<T: WriteJson> WriteJson for Vec<T>
write(JsonEmitter&, const std::vector<T>&) exposed through the WriteJson
overload set so a std::vector<T> can be a key value (writePair/writeValue).
fn write_json(&self, emitter: &mut JsonEmitter)
Source§impl<T: WriteJson> WriteJson for [T]
Slices behave like vectors for the overload set; useful for &[T] values.
impl<T: WriteJson> WriteJson for [T]
Slices behave like vectors for the overload set; useful for &[T] values.
fn write_json(&self, emitter: &mut JsonEmitter)
Source§impl<T> WriteJson for *const T
impl<T> WriteJson for *const T
fn write_json(&self, emitter: &mut JsonEmitter)
Implementors§
impl WriteJson for AnnotationTypesAtLocation
impl WriteJson for BindingSnapshot
impl WriteJson for BoundarySnapshot
impl WriteJson for ConstraintBlock
impl WriteJson for ConstraintGenerationLog
impl WriteJson for ConstraintSnapshot
impl WriteJson for ErrorSnapshot
impl WriteJson for ExprTypesAtLocation
impl WriteJson for Location
impl WriteJson for ScopeSnapshot
impl WriteJson for StepSnapshot
impl WriteJson for TypeBindingSnapshot
impl WriteJson for TypeCheckLog
impl WriteJson for TypeSolveLog
impl<K, V: WriteJson + DenseDefault> WriteJson for DenseHashMap<*const K, V>
Pointer-keyed DenseHashMap (e.g. unsolvedConstraints, typeStrings):
DcrLogger writes these through its own write overload, which keys the
object by each key’s pointer id.
impl<T: WriteJson + DenseDefault> WriteJson for DenseHashMap<String, T>
write(JsonEmitter&, const std::unordered_map<std::string, T>&) for a
string-keyed DenseHashMap.