solidrs 0.2.0

Rust library to generate openScad models. Inspired by SolidPython.
Documentation
use crate::{
    element::{Element, InnerElement},
    var::Arg,
};

#[must_use]
pub fn cube<'a>(x: impl Arg<'a>, y: impl Arg<'a>, z: impl Arg<'a>) -> Element<'a> {
    Element(InnerElement::Cube {
        x: x.val(),
        y: y.val(),
        z: z.val(),
        centered: false,
    })
}

#[must_use]
pub fn cylinder<'a>(h: impl Arg<'a>, r: impl Arg<'a>) -> Element<'a> {
    Element(InnerElement::Cylinder {
        h: h.val(),
        r: r.val(),
        centered: false,
    })
}

impl<'a> Element<'a> {
    #[must_use]
    pub fn rotate_extrude(self, angle: impl Arg<'a>) -> Self {
        Element(InnerElement::RotateExtrude {
            angle: angle.val(),
            child: Box::new(self.0),
        })
    }
}