prax-schema
Schema parser and AST for the Prax ORM.
This crate provides:
- Schema Definition Language (SDL) parser for
.praxfiles - Configuration parser for
prax.tomlfiles - Abstract Syntax Tree (AST) types for schema representation
- Schema validation and semantic analysis
Quick Start
Parse a schema string:
use parse_schema;
let schema = parse_schema.unwrap;
assert!;
Parsing Models
Models define database tables with typed fields:
use parse_schema;
let schema = parse_schema.unwrap;
let post = schema.get_model.unwrap;
assert_eq!;
// Check field properties
let title = post.fields.get.unwrap;
assert!;
let content = post.fields.get.unwrap;
assert!;
Parsing Enums
Enums define custom value types:
use parse_schema;
let schema = parse_schema.unwrap;
let role_enum = schema.get_enum.unwrap;
assert_eq!;
Parsing Relations
Relations define relationships between models:
use parse_schema;
let schema = parse_schema.unwrap;
let post = schema.get_model.unwrap;
let author_field = post.fields.get.unwrap;
assert!;
Parsing Views
Views represent SQL views:
use parse_schema;
let schema = parse_schema.unwrap;
assert!;
Parsing Server Groups
Server groups define multi-server configurations:
use parse_schema;
let schema = parse_schema.unwrap;
let cluster = schema.get_server_group.unwrap;
assert_eq!;
Schema Validation
Validate schemas for correctness:
use validate_schema;
// Valid schema passes validation
let result = validate_schema;
assert!;
// Schema with relations validates correctly
let result = validate_schema;
assert!;
Schema Statistics
Get statistics about a schema:
use parse_schema;
let schema = parse_schema.unwrap;
let stats = schema.stats;
assert_eq!;
assert_eq!;
assert_eq!;
Configuration Parsing
Parse prax.toml configuration:
use PraxConfig;
let config: PraxConfig = from_str.unwrap;
assert_eq!;
Prelude
Import commonly used types:
use *;
// Now you can use parse_schema, Schema, etc.
let schema = parse_schema.unwrap;