github.com/lmorg/murex@v0.0.0-20240217211045-e081c89cd4ef/builtins/types/generic/generic.go (about) 1 package generic 2 3 import ( 4 "regexp" 5 6 "github.com/lmorg/murex/lang" 7 "github.com/lmorg/murex/lang/stdio" 8 "github.com/lmorg/murex/lang/types" 9 ) 10 11 func init() { 12 // Register data type 13 lang.ReadIndexes[types.Generic] = index 14 lang.ReadNotIndexes[types.Generic] = index 15 lang.Marshallers[types.Generic] = marshal 16 lang.Unmarshallers[types.Generic] = unmarshal 17 18 stdio.RegisterReadArray(types.Generic, readArray) 19 stdio.RegisterReadArrayWithType(types.Generic, readArrayWithType) 20 stdio.RegisterReadMap(types.Generic, readMap) 21 stdio.RegisterWriteArray(types.Generic, newArrayWriter) 22 23 // descriptive name 24 lang.ReadIndexes["generic"] = index 25 lang.ReadNotIndexes["generic"] = index 26 lang.Marshallers["generic"] = marshal 27 lang.Unmarshallers["generic"] = unmarshal 28 29 stdio.RegisterReadArray("generic", readArray) 30 stdio.RegisterReadMap("generic", readMap) 31 stdio.RegisterWriteArray("generic", newArrayWriter) 32 } 33 34 var rxWhitespace = regexp.MustCompile(`\s+`) 35 36 // common tabwriter values 37 const ( 38 twMinWidth = 0 39 twTabWidth = 0 40 twPadding = 2 41 twPadChar = ' ' 42 twFlags = 0 43 )