first pass of merging in warp (doesn't build)

This commit is contained in:
Ryan Ward
2026-07-01 16:08:58 -05:00
parent 2f64909469
commit 4770ac06b5
3662 changed files with 414574 additions and 89772 deletions
+4 -69
View File
@@ -18,8 +18,8 @@ use std::path::PathBuf;
use chrono::{DateTime, Utc};
use instant::Duration;
use serde::{de::DeserializeOwned, Serialize};
use serde::de::DeserializeOwned;
use serde::Serialize;
// Re-export the derive macro when available.
use serde_json::Value;
#[cfg(feature = "derive")]
@@ -226,70 +226,5 @@ impl SettingsValue for Duration {
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn duration_round_trip() {
let d = Duration::from_secs(30);
let file_val = d.to_file_value();
assert_eq!(file_val, Value::Number(30.into()));
let back = Duration::from_file_value(&file_val).unwrap();
assert_eq!(back, d);
}
#[test]
fn vec_recursive() {
let v = vec![10u32, 20u32];
let file_val = v.to_file_value();
assert_eq!(
file_val,
Value::Array(vec![Value::Number(10.into()), Value::Number(20.into())])
);
let back = Vec::<u32>::from_file_value(&file_val).unwrap();
assert_eq!(back, v);
}
#[test]
fn option_some() {
let v: Option<u32> = Some(5);
let file_val = v.to_file_value();
assert_eq!(file_val, Value::Number(5.into()));
let back = Option::<u32>::from_file_value(&file_val).unwrap();
assert_eq!(back, v);
}
#[test]
fn option_none() {
let v: Option<u32> = None;
let file_val = v.to_file_value();
assert_eq!(file_val, Value::Null);
let back = Option::<u32>::from_file_value(&file_val).unwrap();
assert_eq!(back, v);
}
#[test]
fn bool_passthrough() {
assert_eq!(true.to_file_value(), Value::Bool(true));
assert_eq!(bool::from_file_value(&Value::Bool(false)), Some(false));
}
#[test]
fn string_passthrough() {
let s = "hello".to_string();
let file_val = s.to_file_value();
assert_eq!(file_val, Value::String("hello".into()));
assert_eq!(String::from_file_value(&file_val), Some(s));
}
#[test]
fn hashmap_round_trip() {
let mut m = HashMap::new();
m.insert("key".to_string(), 42u32);
let file_val = m.to_file_value();
let obj = file_val.as_object().unwrap();
assert_eq!(obj.get("key"), Some(&Value::Number(42.into())));
let back = HashMap::<String, u32>::from_file_value(&file_val).unwrap();
assert_eq!(back, m);
}
}
#[path = "lib_tests.rs"]
mod tests;
+65
View File
@@ -0,0 +1,65 @@
use super::*;
#[test]
fn duration_round_trip() {
let d = Duration::from_secs(30);
let file_val = d.to_file_value();
assert_eq!(file_val, Value::Number(30.into()));
let back = Duration::from_file_value(&file_val).unwrap();
assert_eq!(back, d);
}
#[test]
fn vec_recursive() {
let v = vec![10u32, 20u32];
let file_val = v.to_file_value();
assert_eq!(
file_val,
Value::Array(vec![Value::Number(10.into()), Value::Number(20.into())])
);
let back = Vec::<u32>::from_file_value(&file_val).unwrap();
assert_eq!(back, v);
}
#[test]
fn option_some() {
let v: Option<u32> = Some(5);
let file_val = v.to_file_value();
assert_eq!(file_val, Value::Number(5.into()));
let back = Option::<u32>::from_file_value(&file_val).unwrap();
assert_eq!(back, v);
}
#[test]
fn option_none() {
let v: Option<u32> = None;
let file_val = v.to_file_value();
assert_eq!(file_val, Value::Null);
let back = Option::<u32>::from_file_value(&file_val).unwrap();
assert_eq!(back, v);
}
#[test]
fn bool_passthrough() {
assert_eq!(true.to_file_value(), Value::Bool(true));
assert_eq!(bool::from_file_value(&Value::Bool(false)), Some(false));
}
#[test]
fn string_passthrough() {
let s = "hello".to_string();
let file_val = s.to_file_value();
assert_eq!(file_val, Value::String("hello".into()));
assert_eq!(String::from_file_value(&file_val), Some(s));
}
#[test]
fn hashmap_round_trip() {
let mut m = HashMap::new();
m.insert("key".to_string(), 42u32);
let file_val = m.to_file_value();
let obj = file_val.as_object().unwrap();
assert_eq!(obj.get("key"), Some(&Value::Number(42.into())));
let back = HashMap::<String, u32>::from_file_value(&file_val).unwrap();
assert_eq!(back, m);
}