]> Sergey Matveev's repositories - rutrackerer.git/blob - cmd/repack/main.go
Less gob calls -- several times faster search
[rutrackerer.git] / cmd / repack / main.go
1 package main
2
3 import (
4         "bufio"
5         "encoding/gob"
6         "io"
7         "os"
8
9         "go.stargrave.org/rutrackerer"
10 )
11
12 func main() {
13         gobDec := gob.NewDecoder(bufio.NewReader(os.Stdin))
14         torrents := make([]*rutrackerer.Torrent, 0, 1<<20)
15         var err error
16         for {
17                 var torrent rutrackerer.Torrent
18                 if err = gobDec.Decode(&torrent); err != nil {
19                         if err == io.EOF {
20                                 break
21                         }
22                         panic(err)
23                 }
24                 torrents = append(torrents, &torrent)
25         }
26         gobEnc := gob.NewEncoder(os.Stdout)
27         if err = gobEnc.Encode(torrents); err != nil {
28                 panic(err)
29         }
30 }