simien_ops 0.1.1

Proc macros for writing simien_core ops. Forked from Deno's deno_ops 0.288.0.
Documentation
impl<'a> ::simien_core::webidl::WebIdlConverter<'a> for Enumeration {
    type Options = ();
    fn convert<'b, 'i>(
        __scope: &mut ::simien_core::v8::PinScope<'a, 'i>,
        __value: ::simien_core::v8::Local<'a, ::simien_core::v8::Value>,
        __prefix: std::borrow::Cow<'static, str>,
        __context: ::simien_core::webidl::ContextFn<'b>,
        __options: &Self::Options,
    ) -> Result<Self, ::simien_core::webidl::WebIdlError> {
        {
            let mut __buf: [::std::mem::MaybeUninit<
                u8,
            >; simien_core::_ops::STRING_STACK_BUFFER_SIZE] = [::std::mem::MaybeUninit::uninit(); simien_core::_ops::STRING_STACK_BUFFER_SIZE];
            match simien_core::_ops::to_str(__scope, &*__value, &mut __buf).as_ref() {
                "foo-bar" => Ok(Self::FooBar),
                "baz" => Ok(Self::Baz),
                "hello" => Ok(Self::World),
                s => {
                    Err(
                        ::simien_core::webidl::WebIdlError::new(
                            __prefix,
                            __context,
                            ::simien_core::webidl::WebIdlErrorKind::InvalidEnumVariant {
                                converter: "Enumeration",
                                variant: s.to_string(),
                            },
                        ),
                    )
                }
            }
        }
    }
}
impl Enumeration {
    pub fn as_str(&self) -> &'static str {
        match self {
            Self::FooBar => "foo-bar",
            Self::Baz => "baz",
            Self::World => "hello",
        }
    }
}