oslquery_petite/lib.rs
1//! Lightweight library for querying [Open Shading Language](https://github.com/AcademySoftwareFoundation/OpenShadingLanguage)
2//! (OSL) shader parameters.
3//!
4//! This crate provides a pure Rust implementation for reading and querying
5//! OSL compiled shader files (`.oso` format).
6//!
7//! # Example
8//!
9//! ```no_run
10//! use oslquery_petite::{OslQuery, TypedParameter};
11//! # fn main() -> Result<(), oslquery_petite::parser::ParseError> {
12//!
13//! let query = OslQuery::open("shader.oso")?;
14//! println!("Shader: {} ({})", query.shader_name(), query.shader_type());
15//!
16//! for param in query.params() {
17//! match param.typed_param() {
18//! TypedParameter::Float { default } => {
19//! println!(" float {} = {:?}", param.name, default);
20//! }
21//! TypedParameter::Color { default, .. } => {
22//! println!(" color {} = {:?}", param.name, default);
23//! }
24//! _ => {}
25//! }
26//! }
27//!
28//! # Ok(())
29//! # }
30//! ```
31
32pub mod parser;
33pub mod query;
34pub mod types;
35
36pub use query::OslQuery;
37pub use types::{Metadata, MetadataValue, Parameter, ParameterKind, TypedParameter};