oxc/crates/oxc_syntax/src/class.rs
overlookmotel 48a1c32ed3 refactor(syntax): inline trivial bitflags methods (#4877)
Add `#[inline]` to trivial bitflags methods. Very likely this makes no difference within Oxc, as we compile with LTO enabled, but for external consumers of Oxc who don't use LTO, this will enable cross-crate inlining.
2024-08-13 12:43:09 +00:00

42 lines
869 B
Rust

use bitflags::bitflags;
use oxc_index::define_index_type;
define_index_type! {
pub struct ClassId = u32;
}
define_index_type! {
pub struct ElementId = u32;
}
bitflags! {
#[derive(Debug, Clone, Copy, PartialEq, PartialOrd)]
pub struct ElementKind: u8 {
const Accessor = 1 << 0;
const Method = 1 << 1;
const Property = 1 << 2;
const Setter = 1 << 3;
const Getter = 1 << 4;
}
}
impl ElementKind {
#[inline]
pub fn is_property(self) -> bool {
self.contains(Self::Property)
}
#[inline]
pub fn is_method(self) -> bool {
self.contains(Self::Method)
}
#[inline]
pub fn is_accessor(self) -> bool {
self.contains(Self::Accessor)
}
#[inline]
pub fn is_setter_or_getter(self) -> bool {
self.intersects(Self::Setter | Self::Getter)
}
}