borsh_schema_writer/lib.rs
1//! ## borsh-schema-writer
2//! This library provides a function to take a Struct with the BorshSchema trait and writes the schema to a specified file.
3//! This file can then be hosted in a registry, file system, database, web storage, etc... for consumers to use. Here is an
4//! example:
5//!
6//! ```
7//! use std::fs::File;
8//! use std::io::BufReader;
9//! use borsh::{BorshDeserialize, BorshSerialize, BorshSchema};
10//! use borsh::schema::{BorshSchemaContainer, Definition, Fields};
11//! use borsh_schema_writer::schema_writer::write_schema;
12//!
13//! #[derive(Debug, Default, BorshSerialize, BorshDeserialize, BorshSchema)]
14//! pub struct Person {
15//! first_name: String,
16//! last_name: String
17//! }
18//!
19//! fn write_schema_example() {
20//! write_schema(Person::default(), "./tests/schema/person_schema.dat".to_string());
21//! let file = File::open("./tests/schema/person_schema.dat").unwrap();
22//! let mut reader = BufReader::new(file);
23//! let container_from_file = BorshSchemaContainer::deserialize_reader(&mut reader).expect("Deserialization for BorshSchemaContainer failed");
24//! }
25//! ```
26//!
27pub mod schema_writer;