High and low level bindigns to the SPIRV-Cross API
```rust use spirvcross::{ bytestowords, compiler::{glsl::GlslCompiler, Compiler}, Result, Context, };
fn compile(bytes: &[u8]) -> Result<()> { let words = bytestowords(bytes).unwrap();
let mut context = Context::new()?;
context.set_error_callback(|err| eprintln!("{}", err.to_string_lossy()));
let compiler = GlslCompiler::new(&mut context, &words)?
.vulkan_semantics(true)?;
println!("{}", compiler.compile()?);
return Ok(());
} ```