Files
obitools4/pkg/obitax/taxonslice.go
Eric Coissac 4a0b20484f Add the --taxonomic-path option to obiannotate
Former-commit-id: 385309a1c4bc5ed33aeaafc63eedb9fc552f78a6
2024-02-27 20:10:26 +01:00

39 lines
614 B
Go

package obitax
import (
"bytes"
"fmt"
)
type TaxonSlice []*TaxNode
func (set *TaxonSlice) Get(i int) *TaxNode {
return (*set)[i]
}
func (set *TaxonSlice) Len() int {
return len(*set)
}
func (path *TaxonSlice) String() string {
var buffer bytes.Buffer
if len(*path) > 0 {
taxon := (*path)[len(*path)-1]
fmt.Fprintf(&buffer, "%d@%s@%s",
taxon.Taxid(),
taxon.ScientificName(),
taxon.Rank())
for i := len(*path) - 2; i >= 0; i-- {
taxon := (*path)[i]
fmt.Fprintf(&buffer, "|%d@%s@%s",
taxon.Taxid(),
taxon.ScientificName(),
taxon.Rank())
}
}
return buffer.String()
}