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};