package fontface

// IsDefaultIgnorableRune reports whether the pinned pure-Go HarfBuzz shaper
// treats value as default-ignorable. These code points normally affect shaping
// or protocol state without painting a glyph of their own.
//
// Keep this exact range list shared by scene construction and raster shaping.
// It intentionally follows HarfBuzz's spacing-glyph exceptions for Hangul
// fillers and its shorthand-format-control exception, rather than blindly
// copying Unicode's broader Default_Ignorable_Code_Point property. Using the
// still broader General_Category=Cf would also incorrectly hide visible
// prepended concatenation marks such as U+0600 and U+06DD.
func ( rune) bool {
	switch {
	case  == 0x00ad,
		 == 0x034f,
		 == 0x061c,
		 >= 0x17b4 &&  <= 0x17b5,
		 >= 0x180b &&  <= 0x180e,
		 >= 0x200b &&  <= 0x200f,
		 >= 0x202a &&  <= 0x202e,
		 >= 0x2060 &&  <= 0x206f,
		 >= 0xfe00 &&  <= 0xfe0f,
		 == 0xfeff,
		 >= 0xfff0 &&  <= 0xfff8,
		 >= 0x1d173 &&  <= 0x1d17a,
		 >= 0xe0000 &&  <= 0xe0fff:
		return true
	default:
		return false
	}
}