Packages

Elixir drawing API backed by a batched Rustler Skia renderer

Retired package: Release invalid - Package metadata includes development-only generator modules; use 0.3.2 or later

Current section

Files

Jump to
skia native skia_native src generated_opts_helpers.rs
Raw

native/skia_native/src/generated_opts_helpers.rs

// Generated by mix skia.codegen. Do not edit by hand.
fn decode_opts<'a>(term: Term<'a>) -> NifResult<Vec<(Atom, Term<'a>)>> {
term.map_get(atoms::opts())?.decode::<Vec<(Atom, Term<'a>)>>()
}
fn decode_args<'a>(term: Term<'a>) -> NifResult<Vec<Term<'a>>> {
term.map_get(atoms::args())?.decode::<Vec<Term<'a>>>()
}
fn opt_term<'a>(opts: &[(Atom, Term<'a>)], key: Atom) -> Option<Term<'a>> {
for (atom, term) in opts.iter() {
if *atom == key {
return Some(*term);
}
}
None
}
fn opt_f32<'a>(opts: &[(Atom, Term<'a>)], key: Atom) -> NifResult<f32> {
match opt_term(opts, key) {
Some(term) => {
let value = term.decode::<f64>()? as f32;
if value.is_nan() { Err(rustler::Error::BadArg) } else { Ok(value) }
}
None => Err(rustler::Error::BadArg),
}
}
fn opt_f32_option<'a>(opts: &[(Atom, Term<'a>)], key: Atom) -> NifResult<Option<f32>> {
match opt_term(opts, key) {
Some(term) => Ok(Some(term.decode::<f64>()? as f32)),
None => Ok(None),
}
}
fn opt_f32_default<'a>(
opts: &[(Atom, Term<'a>)],
key: Atom,
default: f32,
) -> NifResult<f32> {
match opt_term(opts, key) {
Some(term) => Ok(term.decode::<f64>()? as f32),
None => Ok(default),
}
}
fn opt_bool_option<'a>(opts: &[(Atom, Term<'a>)], key: Atom) -> NifResult<Option<bool>> {
match opt_term(opts, key) {
Some(term) => Ok(Some(term.decode::<bool>()?)),
None => Ok(None),
}
}
fn opt_atom_option<'a>(opts: &[(Atom, Term<'a>)], key: Atom) -> NifResult<Option<Atom>> {
match opt_term(opts, key) {
Some(term) => Ok(Some(term.decode::<Atom>()?)),
None => Ok(None),
}
}