Skip to main content

WriteJson

Trait WriteJson 

Source
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§

Source

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

Source§

fn write_json(&self, emitter: &mut JsonEmitter)

Source§

impl WriteJson for bool

Source§

fn write_json(&self, emitter: &mut JsonEmitter)

Source§

impl WriteJson for f64

Source§

fn write_json(&self, emitter: &mut JsonEmitter)

Source§

impl WriteJson for i16

Source§

fn write_json(&self, emitter: &mut JsonEmitter)

Source§

impl WriteJson for i32

Source§

fn write_json(&self, emitter: &mut JsonEmitter)

Source§

impl WriteJson for i64

Source§

fn write_json(&self, emitter: &mut JsonEmitter)

Source§

impl WriteJson for isize

Source§

fn write_json(&self, emitter: &mut JsonEmitter)

Source§

impl WriteJson for str

Source§

fn write_json(&self, emitter: &mut JsonEmitter)

Source§

impl WriteJson for u16

Source§

fn write_json(&self, emitter: &mut JsonEmitter)

Source§

impl WriteJson for u32

Source§

fn write_json(&self, emitter: &mut JsonEmitter)

Source§

impl WriteJson for u64

Source§

fn write_json(&self, emitter: &mut JsonEmitter)

Source§

impl WriteJson for usize

Source§

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.

Source§

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.).

Source§

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.

Source§

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).

Source§

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.

Source§

fn write_json(&self, emitter: &mut JsonEmitter)

Source§

impl<T> WriteJson for *const T

Source§

fn write_json(&self, emitter: &mut JsonEmitter)

Implementors§

Source§

impl WriteJson for AnnotationTypesAtLocation

Source§

impl WriteJson for BindingSnapshot

Source§

impl WriteJson for BoundarySnapshot

Source§

impl WriteJson for ConstraintBlock

Source§

impl WriteJson for ConstraintGenerationLog

Source§

impl WriteJson for ConstraintSnapshot

Source§

impl WriteJson for ErrorSnapshot

Source§

impl WriteJson for ExprTypesAtLocation

Source§

impl WriteJson for Location

Source§

impl WriteJson for ScopeSnapshot

Source§

impl WriteJson for StepSnapshot

Source§

impl WriteJson for TypeBindingSnapshot

Source§

impl WriteJson for TypeCheckLog

Source§

impl WriteJson for TypeSolveLog

Source§

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.

Source§

impl<T: WriteJson + DenseDefault> WriteJson for DenseHashMap<String, T>

write(JsonEmitter&, const std::unordered_map<std::string, T>&) for a string-keyed DenseHashMap.