invert_map (for placeholder en/decode conversion)
This commit is contained in:
parent
6775868272
commit
199ce1fdba
|
@ -212,6 +212,7 @@ mod samples_tests {
|
|||
use crate::value::DecodePlaceholderMap;
|
||||
use crate::value::to_value;
|
||||
use crate::value::from_value;
|
||||
use crate::value::invert_map;
|
||||
use std::collections::BTreeMap;
|
||||
|
||||
#[derive(Debug, serde::Serialize, serde::Deserialize)]
|
||||
|
@ -236,16 +237,13 @@ mod samples_tests {
|
|||
|
||||
#[test] fn run() {
|
||||
let mut d = Decoder::new(std::fs::File::open("../../tests/samples.bin").unwrap(), None);
|
||||
let v = d.next().unwrap();
|
||||
// println!("{:#?}", v);
|
||||
let tests: TestCases = from_value(&d.next().unwrap()).unwrap();
|
||||
let decode_placeholders = tests.decode_placeholders.0;
|
||||
let encode_placeholders = invert_map(&decode_placeholders);
|
||||
|
||||
let tests: TestCases = from_value(&v).unwrap();
|
||||
println!("{:#?}", tests);
|
||||
|
||||
// let mut buf = Vec::new();
|
||||
// let mut e = Encoder::new(&mut buf, None);
|
||||
// e.write(&v).unwrap();
|
||||
// println!("{:?}", Value::from(buf))
|
||||
// println!("{:#?}", tests);
|
||||
println!("{:#?}", decode_placeholders);
|
||||
println!("{:#?}", encode_placeholders);
|
||||
}
|
||||
|
||||
#[test] fn simple_to_value() {
|
||||
|
|
|
@ -18,3 +18,10 @@ pub use value::AValue;
|
|||
pub use value::Dictionary;
|
||||
pub use value::Set;
|
||||
pub use value::Value;
|
||||
|
||||
pub fn invert_map<A, B>(m: &std::collections::BTreeMap<A, B>) -> std::collections::BTreeMap<B, A>
|
||||
where A: Clone, B: Clone + Ord
|
||||
{
|
||||
use std::iter::FromIterator;
|
||||
std::collections::BTreeMap::from_iter(m.iter().map(|(a, b)| (b.clone(), a.clone())))
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue