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",
}
}
}