Inline most functions; use aho-corasick for comments and instructions too
This commit is contained in:
parent
e8726c2ed1
commit
e5245acc31
13 changed files with 73 additions and 18 deletions
|
|
@ -145,6 +145,7 @@ pub struct ByNamespace {
|
|||
}
|
||||
|
||||
impl ByNamespace {
|
||||
#[inline(always)]
|
||||
fn get(&self, ns: Namespace) -> Option<&AttrMapEntry> {
|
||||
match ns {
|
||||
Namespace::Html => self.html.as_ref(),
|
||||
|
|
@ -156,10 +157,12 @@ impl ByNamespace {
|
|||
pub struct AttrMap(HashMap<&'static [u8], ByNamespace>);
|
||||
|
||||
impl AttrMap {
|
||||
#[inline(always)]
|
||||
pub const fn new(map: HashMap<&'static [u8], ByNamespace>) -> AttrMap {
|
||||
AttrMap(map)
|
||||
}
|
||||
|
||||
#[inline(always)]
|
||||
pub fn get(&self, ns: Namespace, tag: &[u8], attr: &[u8]) -> Option<&AttributeMinification> {
|
||||
self.0.get(attr).and_then(|namespaces| namespaces.get(ns)).and_then(|entry| match entry {
|
||||
AttrMapEntry::AllNamespaceElements(min) => Some(min),
|
||||
|
|
|
|||
|
|
@ -49,6 +49,7 @@ pub struct Lookup {
|
|||
impl std::ops::Index<u8> for Lookup {
|
||||
type Output = bool;
|
||||
|
||||
#[inline(always)]
|
||||
fn index(&self, c: u8) -> &Self::Output {
|
||||
// \`c\` is definitely below 256 so it's always safe to directly index table without checking.
|
||||
unsafe {
|
||||
|
|
|
|||
Reference in a new issue