github.com/mdaxf/iac@v0.0.0-20240519030858-58a061660378/vendor_skip/golang.org/x/text/feature/plural/common.go (about) 1 // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. 2 3 package plural 4 5 // Form defines a plural form. 6 // 7 // Not all languages support all forms. Also, the meaning of each form varies 8 // per language. It is important to note that the name of a form does not 9 // necessarily correspond one-to-one with the set of numbers. For instance, 10 // for Croation, One matches not only 1, but also 11, 21, etc. 11 // 12 // Each language must at least support the form "other". 13 type Form byte 14 15 const ( 16 Other Form = iota 17 Zero 18 One 19 Two 20 Few 21 Many 22 ) 23 24 var countMap = map[string]Form{ 25 "other": Other, 26 "zero": Zero, 27 "one": One, 28 "two": Two, 29 "few": Few, 30 "many": Many, 31 } 32 33 type pluralCheck struct { 34 // category: 35 // 3..7: opID 36 // 0..2: category 37 cat byte 38 setID byte 39 } 40 41 // opID identifies the type of operand in the plural rule, being i, n or f. 42 // (v, w, and t are treated as filters in our implementation.) 43 type opID byte 44 45 const ( 46 opMod opID = 0x1 // is '%' used? 47 opNotEqual opID = 0x2 // using "!=" to compare 48 opI opID = 0 << 2 // integers after taking the absolute value 49 opN opID = 1 << 2 // full number (must be integer) 50 opF opID = 2 << 2 // fraction 51 opV opID = 3 << 2 // number of visible digits 52 opW opID = 4 << 2 // number of visible digits without trailing zeros 53 opBretonM opID = 5 << 2 // hard-wired rule for Breton 54 opItalian800 opID = 6 << 2 // hard-wired rule for Italian 55 opAzerbaijan00s opID = 7 << 2 // hard-wired rule for Azerbaijan 56 ) 57 const ( 58 // Use this plural form to indicate the next rule needs to match as well. 59 // The last condition in the list will have the correct plural form. 60 andNext = 0x7 61 formMask = 0x7 62 63 opShift = 3 64 65 // numN indicates the maximum integer, or maximum mod value, for which we 66 // have inclusion masks. 67 numN = 100 68 // The common denominator of the modulo that is taken. 69 maxMod = 100 70 )