65 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
 | 
						|
 | 
						|
package precis
 | 
						|
 | 
						|
// entry is the entry of a trie table
 | 
						|
// 7..6   property (unassigned, disallowed, maybe, valid)
 | 
						|
// 5..0   category
 | 
						|
type entry uint8
 | 
						|
 | 
						|
const (
 | 
						|
	propShift = 6
 | 
						|
	propMask  = 0xc0
 | 
						|
	catMask   = 0x3f
 | 
						|
)
 | 
						|
 | 
						|
func (e entry) property() property { return property(e & propMask) }
 | 
						|
func (e entry) category() category { return category(e & catMask) }
 | 
						|
 | 
						|
type property uint8
 | 
						|
 | 
						|
// The order of these constants matter. A Profile may consider runes to be
 | 
						|
// allowed either from pValid or idDisOrFreePVal.
 | 
						|
const (
 | 
						|
	unassigned property = iota << propShift
 | 
						|
	disallowed
 | 
						|
	idDisOrFreePVal // disallowed for Identifier, pValid for FreeForm
 | 
						|
	pValid
 | 
						|
)
 | 
						|
 | 
						|
// compute permutations of all properties and specialCategories.
 | 
						|
type category uint8
 | 
						|
 | 
						|
const (
 | 
						|
	other category = iota
 | 
						|
 | 
						|
	// Special rune types
 | 
						|
	joiningL
 | 
						|
	joiningD
 | 
						|
	joiningT
 | 
						|
	joiningR
 | 
						|
	viramaModifier
 | 
						|
	viramaJoinT // Virama + JoiningT
 | 
						|
	latinSmallL // U+006c
 | 
						|
	greek
 | 
						|
	greekJoinT // Greek + JoiningT
 | 
						|
	hebrew
 | 
						|
	hebrewJoinT // Hebrew + JoiningT
 | 
						|
	japanese    // hirigana, katakana, han
 | 
						|
 | 
						|
	// Special rune types associated with contextual rules defined in
 | 
						|
	// https://tools.ietf.org/html/rfc5892#appendix-A.
 | 
						|
	// ContextO
 | 
						|
	zeroWidthNonJoiner // rule 1
 | 
						|
	zeroWidthJoiner    // rule 2
 | 
						|
	// ContextJ
 | 
						|
	middleDot                // rule 3
 | 
						|
	greekLowerNumeralSign    // rule 4
 | 
						|
	hebrewPreceding          // rule 5 and 6
 | 
						|
	katakanaMiddleDot        // rule 7
 | 
						|
	arabicIndicDigit         // rule 8
 | 
						|
	extendedArabicIndicDigit // rule 9
 | 
						|
 | 
						|
	numCategories
 | 
						|
)
 |