62bd001e93
docker / docker (push) Has been cancelled
Create Release / build (target/superoptimized/sqlpage, macos-latest) (push) Has been cancelled
Create Release / build (target/superoptimized/sqlpage, ubuntu-20.04) (push) Has been cancelled
Create Release / build (target/superoptimized/sqlpage.exe, windows-latest) (push) Has been cancelled
Create Release / build-aws (push) Has been cancelled
Create Release / Create Release (push) Has been cancelled
35 lines
955 B
Rust
35 lines
955 B
Rust
use serde_json::{Map, Value};
|
|
|
|
#[must_use]
|
|
pub fn add_value_to_map(
|
|
mut map: Map<String, Value>,
|
|
(key, value): (String, Value),
|
|
) -> Map<String, Value> {
|
|
use serde_json::map::Entry::{Occupied, Vacant};
|
|
use Value::Array;
|
|
match map.entry(key) {
|
|
Vacant(vacant) => {
|
|
vacant.insert(value);
|
|
}
|
|
Occupied(mut old_entry) => {
|
|
let mut new_array = if let Array(v) = value { v } else { vec![value] };
|
|
match old_entry.get_mut() {
|
|
Array(old_array) => old_array.extend(new_array.into_iter()),
|
|
old_scalar => {
|
|
new_array.insert(0, old_scalar.take());
|
|
*old_scalar = Array(new_array);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
map
|
|
}
|
|
|
|
macro_rules! static_filename {
|
|
($filename:expr) => {
|
|
include_str!(concat!(env!("OUT_DIR"), "/", $filename, ".filename.txt"))
|
|
};
|
|
}
|
|
|
|
pub(crate) use static_filename;
|