mirror of
https://github.com/danbulant/oxc
synced 2026-05-24 20:32:10 +00:00
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.
42 lines
869 B
Rust
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)
|
|
}
|
|
}
|