Add schema_for macro
				
					
				
			This commit is contained in:
		
							parent
							
								
									463ba518b6
								
							
						
					
					
						commit
						ef5c584118
					
				
					 4 changed files with 14 additions and 6 deletions
				
			
		| 
						 | 
				
			
			@ -2,6 +2,9 @@ pub mod gen;
 | 
			
		|||
pub mod make_schema;
 | 
			
		||||
pub mod schema;
 | 
			
		||||
 | 
			
		||||
#[macro_use]
 | 
			
		||||
mod macros;
 | 
			
		||||
 | 
			
		||||
pub use make_schema::MakeSchema;
 | 
			
		||||
 | 
			
		||||
pub use schemars_derive::*;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										6
									
								
								schemars/src/macros.rs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								schemars/src/macros.rs
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,6 @@
 | 
			
		|||
#[macro_export()]
 | 
			
		||||
macro_rules! schema_for {
 | 
			
		||||
    ($($type:tt)+) => {
 | 
			
		||||
        $crate::gen::SchemaGenerator::new().into_root_schema_for::<$($type)+>()
 | 
			
		||||
    };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,9 +1,9 @@
 | 
			
		|||
use schemars::*;
 | 
			
		||||
use schemars::schema_for;
 | 
			
		||||
use schemars::schema::Schema;
 | 
			
		||||
use serde_json::Result;
 | 
			
		||||
 | 
			
		||||
fn main() -> Result<()> {
 | 
			
		||||
    let gen = gen::SchemaGenerator::new();
 | 
			
		||||
    let schema = gen.into_root_schema_for::<schema::Schema>();
 | 
			
		||||
    let schema = schema_for!(Schema);
 | 
			
		||||
    let json = serde_json::to_string_pretty(&schema)?;
 | 
			
		||||
    println!("{}", json);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,5 +1,5 @@
 | 
			
		|||
use schemars::gen::SchemaGenerator;
 | 
			
		||||
use schemars::schema::*;
 | 
			
		||||
use schemars::schema_for;
 | 
			
		||||
use serde_json::{from_str, to_string_pretty};
 | 
			
		||||
use std::fs;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -12,8 +12,7 @@ mod tests {
 | 
			
		|||
        let expected_json = fs::read_to_string("tests/schema.json")?;
 | 
			
		||||
        let expected: Schema = from_str(&expected_json)?;
 | 
			
		||||
 | 
			
		||||
        let gen = SchemaGenerator::new();
 | 
			
		||||
        let actual = gen.into_root_schema_for::<Schema>();
 | 
			
		||||
        let actual = schema_for!(Schema);
 | 
			
		||||
        fs::write("tests/schema.actual.json", to_string_pretty(&actual)?)?;
 | 
			
		||||
 | 
			
		||||
        assert_eq!(actual, expected, "\n\nGenerated schema did not match saved schema - generated schema has been written to \"tests/schema.actual.json\".");
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue