...

Source file src/github.com/zeebo/xxh3/internal/table/table.go

Documentation: github.com/zeebo/xxh3/internal/table

     1  package main
     2  
     3  import (
     4  	"bufio"
     5  	"fmt"
     6  	"os"
     7  	"sort"
     8  	"strconv"
     9  	"strings"
    10  )
    11  
    12  func main() {
    13  	sizes := map[string]struct{}{}
    14  	sizesKeys := []string{}
    15  	values := map[string]string{}
    16  	scanner := bufio.NewScanner(os.Stdin)
    17  	scanner.Scan() // skip first line
    18  	for scanner.Scan() {
    19  		if scanner.Text() == "" {
    20  			break
    21  		}
    22  		fields := strings.Fields(scanner.Text())
    23  		if !strings.HasPrefix(fields[0], "Fixed") {
    24  			continue
    25  		}
    26  		values[fields[0]] = fields[7]
    27  		size := strings.Split(fields[0], "/")[1]
    28  		if _, ok := sizes[size]; !ok {
    29  			sizes[size] = struct{}{}
    30  			sizesKeys = append(sizesKeys, size)
    31  		}
    32  	}
    33  
    34  	sort.Slice(sizesKeys, func(i, j int) bool {
    35  		vi, _ := strconv.Atoi(strings.Split(sizesKeys[i], "-")[0])
    36  		vj, _ := strconv.Atoi(strings.Split(sizesKeys[j], "-")[0])
    37  		if vi == vj {
    38  			return sizesKeys[i] < sizesKeys[j]
    39  		}
    40  		return vi < vj
    41  	})
    42  
    43  	fmt.Println("size|64|64 seed|128|128 seed")
    44  	fmt.Println("----|--|-------|---|--------")
    45  
    46  	for _, size := range sizesKeys {
    47  		fmt.Printf("%s|%s|%s|%s|%s\n",
    48  			size,
    49  			values[fmt.Sprintf("Fixed64/%s/default", size)],
    50  			values[fmt.Sprintf("Fixed64/%s/seed", size)],
    51  			values[fmt.Sprintf("Fixed128/%s/default", size)],
    52  			values[fmt.Sprintf("Fixed128/%s/seed", size)],
    53  		)
    54  	}
    55  }
    56  

View as plain text