MCPcopy Create free account
hub / github.com/MG-RAST/Shock / DetermineFormat

Method DetermineFormat

shock-server/node/file/format/multi/multi.go:43–62  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

41}
42
43func (r *Reader) DetermineFormat() error {
44 if r.format != "" && r.r != nil {
45 return nil
46 }
47
48 reader := io.NewSectionReader(r.f, 0, 32768)
49 buf := make([]byte, 32768)
50 if _, err := reader.Read(buf); err != nil && err != io.EOF {
51 return err
52 }
53
54 for format, re := range validators {
55 if re.Match(buf) {
56 r.format = format
57 r.r = readers[format](r.f)
58 return nil
59 }
60 }
61 return errors.New(e.InvalidFileTypeForFilter)
62}
63
64func (r *Reader) Read() (*seq.Seq, error) {
65 if r.r == nil {

Callers 3

ReadMethod · 0.95
GetReadOffsetMethod · 0.95
SeekChunkMethod · 0.95

Implementers 4

Readershock-server/node/file/format/multi/mu
Readershock-server/node/file/format/fastq/fa
Readershock-server/node/file/format/fasta/fa
Readershock-server/node/file/format/sam/sam.

Calls 1

ReadMethod · 0.65

Tested by

no test coverage detected