move the worker class to the obiseq package

This commit is contained in:
2023-01-22 22:39:13 +01:00
parent f97f92df72
commit 2d375df94f
12 changed files with 153 additions and 43 deletions

31
pkg/obiseq/worker.go Normal file
View File

@@ -0,0 +1,31 @@
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
}