multiless.go | 43 ++++--------------------------------------- diff --git a/multiless.go b/multiless.go index bdc851d8e8089ca66a2749b8e7ba881dc0aa33cd..3f69a626b1aa9cae234fcfde21816548b26484e7 100644 --- a/multiless.go +++ b/multiless.go @@ -1,43 +1,8 @@ package torrent +import "github.com/anacrolix/missinggo" + type ( - cmper func() (same, less bool) - multiLess struct { - ok bool - less bool - } + multiLess = missinggo.MultiLess + cmper = missinggo.SameLessFunc ) - -func (me *multiLess) Final() bool { - if !me.ok { - panic("undetermined") - } - return me.less -} - -func (me *multiLess) FinalOk() (left, ok bool) { - return me.less, me.ok -} - -func (me *multiLess) Next(f cmper) { - if me.ok { - return - } - same, less := f() - if same { - return - } - me.ok = true - me.less = less -} - -func (me *multiLess) StrictNext(same, less bool) { - if me.ok { - return - } - me.Next(func() (bool, bool) { return same, less }) -} - -func (me *multiLess) NextBool(l, r bool) { - me.StrictNext(l == r, l) -}