polars_jsonschema_bridge/lib.rs
1//! Bridge between Polars DataTypes and JSON Schema.
2//!
3//! Provides bidirectional conversion:
4//! - JSON Schema → Polars types (deserialise)
5//! - Polars types → JSON Schema (serialise)
6//!
7//! # Examples
8//!
9//! ```rust
10//! use polars_jsonschema_bridge::{schema_to_polars_fields, polars_schema_to_json_schema, JsonSchemaOptions};
11//! use polars::prelude::*;
12//! use serde_json::json;
13//!
14//! // JSON Schema → Polars
15//! let json_schema = json!({
16//! "type": "object",
17//! "properties": {
18//! "name": {"type": "string"},
19//! "age": {"type": "integer"}
20//! }
21//! });
22//! let fields = schema_to_polars_fields(&json_schema, false).unwrap();
23//!
24//! // Polars → JSON Schema
25//! let mut schema = Schema::default();
26//! schema.with_column("name".into(), DataType::String);
27//! let json_schema = polars_schema_to_json_schema(&schema, &JsonSchemaOptions::new()).unwrap();
28//! ```
29
30pub mod deserialise;
31pub mod serialise;
32pub mod types;
33
34// Re-export main functions
35pub use deserialise::{json_type_to_polars_type, schema_to_polars_fields, SchemaFormat};
36pub use serialise::{polars_dtype_to_json_schema, polars_schema_to_json_schema, JsonSchemaOptions};
37pub use types::conversion_error;