Initial vendor packages
Signed-off-by: Valentin Popov <valentin@popov.link>
This commit is contained in:
		
							
								
								
									
										61
									
								
								vendor/serde_json/tests/macros/mod.rs
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										61
									
								
								vendor/serde_json/tests/macros/mod.rs
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,61 @@
 | 
			
		||||
#![allow(unused_macro_rules)]
 | 
			
		||||
 | 
			
		||||
macro_rules! json_str {
 | 
			
		||||
    ([]) => {
 | 
			
		||||
        "[]"
 | 
			
		||||
    };
 | 
			
		||||
    ([ $e0:tt $(, $e:tt)* $(,)? ]) => {
 | 
			
		||||
        concat!("[",
 | 
			
		||||
            json_str!($e0),
 | 
			
		||||
            $(",", json_str!($e),)*
 | 
			
		||||
        "]")
 | 
			
		||||
    };
 | 
			
		||||
    ({}) => {
 | 
			
		||||
        "{}"
 | 
			
		||||
    };
 | 
			
		||||
    ({ $k0:tt : $v0:tt $(, $k:tt : $v:tt)* $(,)? }) => {
 | 
			
		||||
        concat!("{",
 | 
			
		||||
            stringify!($k0), ":", json_str!($v0),
 | 
			
		||||
            $(",", stringify!($k), ":", json_str!($v),)*
 | 
			
		||||
        "}")
 | 
			
		||||
    };
 | 
			
		||||
    (($other:tt)) => {
 | 
			
		||||
        $other
 | 
			
		||||
    };
 | 
			
		||||
    ($other:tt) => {
 | 
			
		||||
        stringify!($other)
 | 
			
		||||
    };
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
macro_rules! pretty_str {
 | 
			
		||||
    ($json:tt) => {
 | 
			
		||||
        pretty_str_impl!("", $json)
 | 
			
		||||
    };
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
macro_rules! pretty_str_impl {
 | 
			
		||||
    ($indent:expr, []) => {
 | 
			
		||||
        "[]"
 | 
			
		||||
    };
 | 
			
		||||
    ($indent:expr, [ $e0:tt $(, $e:tt)* $(,)? ]) => {
 | 
			
		||||
        concat!("[\n  ",
 | 
			
		||||
            $indent, pretty_str_impl!(concat!("  ", $indent), $e0),
 | 
			
		||||
            $(",\n  ", $indent, pretty_str_impl!(concat!("  ", $indent), $e),)*
 | 
			
		||||
        "\n", $indent, "]")
 | 
			
		||||
    };
 | 
			
		||||
    ($indent:expr, {}) => {
 | 
			
		||||
        "{}"
 | 
			
		||||
    };
 | 
			
		||||
    ($indent:expr, { $k0:tt : $v0:tt $(, $k:tt : $v:tt)* $(,)? }) => {
 | 
			
		||||
        concat!("{\n  ",
 | 
			
		||||
            $indent, stringify!($k0), ": ", pretty_str_impl!(concat!("  ", $indent), $v0),
 | 
			
		||||
            $(",\n  ", $indent, stringify!($k), ": ", pretty_str_impl!(concat!("  ", $indent), $v),)*
 | 
			
		||||
        "\n", $indent, "}")
 | 
			
		||||
    };
 | 
			
		||||
    ($indent:expr, ($other:tt)) => {
 | 
			
		||||
        $other
 | 
			
		||||
    };
 | 
			
		||||
    ($indent:expr, $other:tt) => {
 | 
			
		||||
        stringify!($other)
 | 
			
		||||
    };
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user