From: Matt Joiner Date: Sun, 3 Mar 2019 03:30:02 +0000 (+1100) Subject: Move multiless to missinggo X-Git-Tag: v1.1.0~9 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=52b3a4e8166778b27533ca5d31d6dbff15ada1eb;p=btrtrc.git Move multiless to missinggo --- diff --git a/multiless.go b/multiless.go index bdc851d8..3f69a626 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) -}