use bitflags::bitflags; use oxc_index::define_index_type; define_index_type! { pub struct AstNodeId = usize; } #[cfg(feature = "serialize")] #[wasm_bindgen::prelude::wasm_bindgen(typescript_custom_section)] const TS_APPEND_CONTENT: &'static str = r#" export type AstNodeId = number; export type NodeFlags = { JSDoc: 1, Class: 2, HasYield: 4 }; "#; bitflags! { #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] pub struct NodeFlags: u8 { const JSDoc = 1 << 0; // If the Node has a JSDoc comment attached const Class = 1 << 1; // If Node is inside a class const HasYield = 1 << 2; // If function has yield statement } } impl NodeFlags { pub fn has_jsdoc(&self) -> bool { self.contains(Self::JSDoc) } pub fn has_class(&self) -> bool { self.contains(Self::Class) } pub fn has_yield(&self) -> bool { self.contains(Self::HasYield) } }