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  )