observer/
observe_fields.rs

1use crate::observe_result;
2use crate::{field, transient_field};
3use std::collections::HashMap;
4
5// TODO: let it accept either str or String
6pub fn observe_string(name: &'static str, value: &str) {
7    field(name, json!(value));
8}
9
10pub fn observe_json(name: &'static str, value: serde_json::Value) {
11    field(name, value)
12}
13
14pub fn observe_bool(name: &'static str, value: bool) {
15    field(name, json!(value))
16}
17
18pub fn observe_optional_bool(name: &'static str, value: Option<bool>) {
19    if let Some(v) = value {
20        field(name, json!(v))
21    }
22}
23
24pub fn observe_char(name: &'static str, value: char) {
25    field(name, json!(value))
26}
27
28pub fn observe_i8(name: &'static str, value: i8) {
29    field(name, json!(value))
30}
31
32pub fn observe_i16(name: &'static str, value: i16) {
33    field(name, json!(value))
34}
35
36pub fn observe_i32(name: &'static str, value: i32) {
37    field(name, json!(value));
38}
39
40pub fn observe_i64(name: &'static str, value: i64) {
41    field(name, json!(value))
42}
43
44pub fn observe_isize(name: &'static str, value: isize) {
45    field(name, json!(value))
46}
47
48pub fn observe_u8(name: &'static str, value: u8) {
49    field(name, json!(value))
50}
51
52pub fn observe_u16(name: &'static str, value: u16) {
53    field(name, json!(value))
54}
55
56pub fn observe_u32(name: &'static str, value: u32) {
57    field(name, json!(value));
58}
59
60pub fn observe_u64(name: &'static str, value: u64) {
61    field(name, json!(value))
62}
63
64pub fn observe_usize(name: &'static str, value: usize) {
65    field(name, json!(value))
66}
67
68pub fn observe_f64(name: &'static str, value: f64) {
69    field(name, json!(value));
70}
71
72pub fn observe_f32(name: &'static str, value: f32) {
73    field(name, json!(value));
74}
75
76pub fn transient_string(name: &'static str, value: &str) {
77    transient_field(name, json!(value));
78}
79
80pub fn transient_json(name: &'static str, value: serde_json::Value) {
81    transient_field(name, value)
82}
83
84pub fn transient_bool(name: &'static str, value: bool) {
85    transient_field(name, json!(value))
86}
87
88pub fn transient_char(name: &'static str, value: char) {
89    transient_field(name, json!(value))
90}
91
92pub fn transient_i8(name: &'static str, value: i8) {
93    transient_field(name, json!(value))
94}
95
96pub fn transient_i16(name: &'static str, value: i16) {
97    transient_field(name, json!(value))
98}
99
100pub fn transient_i32(name: &'static str, value: i32) {
101    transient_field(name, json!(value));
102}
103
104pub fn transient_i64(name: &'static str, value: i64) {
105    transient_field(name, json!(value))
106}
107
108pub fn transient_isize(name: &'static str, value: isize) {
109    transient_field(name, json!(value))
110}
111
112pub fn transient_u8(name: &'static str, value: u8) {
113    transient_field(name, json!(value))
114}
115
116pub fn transient_u16(name: &'static str, value: u16) {
117    transient_field(name, json!(value))
118}
119
120pub fn transient_u32(name: &'static str, value: u32) {
121    transient_field(name, json!(value));
122}
123
124pub fn transient_u64(name: &'static str, value: u64) {
125    transient_field(name, json!(value))
126}
127
128pub fn transient_usize(name: &'static str, value: usize) {
129    transient_field(name, json!(value))
130}
131
132pub fn transient_f64(name: &'static str, value: f64) {
133    transient_field(name, json!(value));
134}
135
136pub fn transient_f32(name: &'static str, value: f32) {
137    transient_field(name, json!(value));
138}
139
140pub fn observe_result_string(value: &str) {
141    observe_result(json!(value))
142}
143
144pub fn observe_result_bool(value: bool) {
145    observe_result(json!(value))
146}
147
148pub fn observe_result_char(value: char) {
149    observe_result(json!(value))
150}
151
152pub fn observe_result_i8(value: i8) {
153    observe_result(json!(value))
154}
155
156pub fn observe_result_i16(value: i16) {
157    observe_result(json!(value))
158}
159
160pub fn observe_result_i32(value: i32) {
161    observe_result(json!(value))
162}
163
164pub fn observe_result_i64(value: i64) {
165    observe_result(json!(value))
166}
167
168pub fn observe_result_isize(value: isize) {
169    observe_result(json!(value))
170}
171
172pub fn observe_result_u8(value: u8) {
173    observe_result(json!(value))
174}
175
176pub fn observe_result_u16(value: u16) {
177    observe_result(json!(value))
178}
179
180pub fn observe_result_u32(value: u32) {
181    observe_result(json!(value));
182}
183
184pub fn observe_result_u64(value: u64) {
185    observe_result(json!(value))
186}
187
188pub fn observe_result_usize(value: usize) {
189    observe_result(json!(value))
190}
191
192pub fn observe_result_f64(value: f64) {
193    observe_result(json!(value));
194}
195
196pub fn observe_result_f32(value: f32) {
197    observe_result(json!(value));
198}
199
200pub fn observe_result_object(value: serde_json::Value) {
201    observe_result(value);
202}
203
204pub fn observe_result_list<T: serde::Serialize>(value: &[T]) {
205    observe_result(json!(value));
206}
207
208pub fn observe_result_map<K, V, S: ::std::hash::BuildHasher>(value: &HashMap<K, V, S>)
209where
210    K: std::hash::Hash + std::cmp::Eq + serde::Serialize,
211    V: serde::Serialize,
212{
213    observe_result(json!(value));
214}