Files
obitools4/pkg/obiseq/worker.go

32 lines
608 B
Go
Raw Normal View History

package obiseq
type SeqAnnotator func(*BioSequence)
type SeqWorker func(*BioSequence) *BioSequence
type SeqSliceWorker func(BioSequenceSlice) BioSequenceSlice
func AnnotatorToSeqWorker(function SeqAnnotator) SeqWorker {
f := func(seq *BioSequence) *BioSequence {
function(seq)
return seq
}
return f
}
func SeqToSliceWorker(worker SeqWorker, inplace bool) SeqSliceWorker {
f := func(input BioSequenceSlice) BioSequenceSlice {
output := input
if (! inplace) {
output = MakeBioSequenceSlice()
}
for i,s := range(input) {
output[i] = worker(s)
}
return output
}
return f
}