def align

bend-edit-distance@0.2.2.0 · src/DistanceDP.bend:158

import bend-edit-distance@0.2.2.0/src/DistanceDP.bend as DistanceDP
import Base
import bend-edit-distance@0.2.2.0/EdlibTypes.bend as E

158# The independent worker supports configured DISTANCE in every mode, including
159# Edlib's empty-input early return before threshold filtering.
160def align(query: String, target: String, config: E.AlignConfig) -> E.AlignResult:
161  match query target config:
162    case SNil{} +t E.AlignConfig{E.NW{}, E.Distance{}, _, _, _}:
163      +length = String.length(t)
164      E.distance_result(length, E.end_coordinate(length), True{})
165    case SNil{} _ E.AlignConfig{_, E.Distance{}, _, _, _}:
166      E.distance_result(0n, E.BeforeStart{}, True{})
167    case SCon{_, qt} SNil{} E.AlignConfig{_, E.Distance{}, _, _, _}:
168      E.distance_result(1n+String.length(qt), E.BeforeStart{}, True{})
169    case +q +t E.AlignConfig{E.NW{}, E.Distance{}, +threshold, pairs, _}:
170      +score = distance_with_equalities(q, t, pairs)
171      E.distance_result(score, E.end_coordinate(String.length(t)), E.within_threshold(threshold, score))
172    case +q +t E.AlignConfig{mode, E.Distance{}, threshold, pairs, _}:
173      semiglobal_result(semiglobal(q, t, mode, pairs), threshold)
174    case _ _ _:
175      E.AlignResult{E.Error{}, E.NotFound{}, Nil{}, None{}, None{}, None{}}

Uses (19)

Used by (0)

No other definition uses this definition.