mirror of
https://github.com/metabarcoding/obitools4.git
synced 2025-12-08 16:50:27 +00:00
move the worker class to the obiseq package
This commit is contained in:
31
pkg/obiseq/worker.go
Normal file
31
pkg/obiseq/worker.go
Normal 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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user