// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. package plural // Form defines a plural form. // // Not all languages support all forms. Also, the meaning of each form varies // per language. It is important to note that the name of a form does not // necessarily correspond one-to-one with the set of numbers. For instance, // for Croation, One matches not only 1, but also 11, 21, etc. // // Each language must at least support the form "other". type Form byte const ( Other Form = iota Zero One Two Few Many ) var countMap = map[string]Form{ "other": Other, "zero": Zero, "one": One, "two": Two, "few": Few, "many": Many, } type pluralCheck struct { // category: // 3..7: opID // 0..2: category cat byte setID byte } // opID identifies the type of operand in the plural rule, being i, n or f. // (v, w, and t are treated as filters in our implementation.) type opID byte const ( opMod opID = 0x1 // is '%' used? opNotEqual opID = 0x2 // using "!=" to compare opI opID = 0 << 2 // integers after taking the absolute value opN opID = 1 << 2 // full number (must be integer) opF opID = 2 << 2 // fraction opV opID = 3 << 2 // number of visible digits opW opID = 4 << 2 // number of visible digits without trailing zeros opBretonM opID = 5 << 2 // hard-wired rule for Breton opItalian800 opID = 6 << 2 // hard-wired rule for Italian opAzerbaijan00s opID = 7 << 2 // hard-wired rule for Azerbaijan ) const ( // Use this plural form to indicate the next rule needs to match as well. // The last condition in the list will have the correct plural form. andNext = 0x7 formMask = 0x7 opShift = 3 // numN indicates the maximum integer, or maximum mod value, for which we // have inclusion masks. numN = 100 // The common denominator of the modulo that is taken. maxMod = 100 )