Skip to main content

Crate betula_schema

Crate betula_schema 

Source
Expand description

Rust types and validating parsers for the betula bioinformatics JSON schemas.

types is generated by typify from the JSON Schemas; don’t edit it. typify doesn’t enforce every JSON Schema keyword (e.g. minItems), so parse and parse_str validate against the canonical schema first and only then deserialize. Use them rather than serde_json::from_* directly.

let tree: betula_schema::Tree =
    betula_schema::parse_str(r#"{"name": "A", "length": 0.1, "children": []}"#).unwrap();
assert_eq!(tree.name, "A");

assert!(betula_schema::parse_str::<betula_schema::Tree>(r#"{"name": "A", "length": -1, "children": []}"#).is_err());

Re-exports§

pub use crate::types::Alignment;
pub use crate::types::Annotation;
pub use crate::types::BlastResult;
pub use crate::types::DistanceMatrix;
pub use crate::types::DnaAlphabet;
pub use crate::types::DnaSequence;
pub use crate::types::Hit;
pub use crate::types::HitMember;
pub use crate::types::Hsp;
pub use crate::types::Identifier;
pub use crate::types::Location;
pub use crate::types::Metadata;
pub use crate::types::ProteinAlphabet;
pub use crate::types::ProteinSequence;
pub use crate::types::RnaAlphabet;
pub use crate::types::RnaSequence;
pub use crate::types::Sequence;
pub use crate::types::SequenceReference;
pub use crate::types::TaxonomyNode;
pub use crate::types::Tree;
pub use crate::types::UntypedSequence;
pub use crate::types::UnwrappedAlignment;
pub use crate::types::WrappedAlignment;

Modules§

types

Enums§

Error
Why parsing failed.
Strand
GFF3 strand (column 7). Hand-written because typify can’t derive variant names from +/-/.; generated types refer to it as betula_schema::Strand.

Constants§

KINDS
Every betula kind name.

Traits§

Kind
A betula schema kind: a generated type paired with the schema it must satisfy.

Functions§

parse
Validate already-decoded JSON against the schema for T, then deserialize it.
parse_str
Parse JSON text into T, validating against its schema first.
validate
Check value against the schema for T without deserializing it.