code.vegaprotocol.io/vega@v0.79.0/core/execution/stoporders/common.go (about)

     1  // Copyright (C) 2023 Gobalsky Labs Limited
     2  //
     3  // This program is free software: you can redistribute it and/or modify
     4  // it under the terms of the GNU Affero General Public License as
     5  // published by the Free Software Foundation, either version 3 of the
     6  // License, or (at your option) any later version.
     7  //
     8  // This program is distributed in the hope that it will be useful,
     9  // but WITHOUT ANY WARRANTY; without even the implied warranty of
    10  // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    11  // GNU Affero General Public License for more details.
    12  //
    13  // You should have received a copy of the GNU Affero General Public License
    14  // along with this program.  If not, see <http://www.gnu.org/licenses/>.
    15  
    16  package stoporders
    17  
    18  import (
    19  	"errors"
    20  	"fmt"
    21  	"strings"
    22  
    23  	"github.com/google/btree"
    24  )
    25  
    26  var (
    27  	ErrNoPriceToOffset   = errors.New("no price to offset")
    28  	ErrStopOrderNotFound = errors.New("stop order not found")
    29  	ErrPriceNotFound     = errors.New("price not found")
    30  	ErrOrderNotFound     = errors.New("order not found")
    31  )
    32  
    33  func dumpTree[T fmt.Stringer](tree *btree.BTreeG[T]) string {
    34  	var out []string
    35  	tree.Ascend(func(item T) bool {
    36  		out = append(out, fmt.Sprintf("(%s)", item.String()))
    37  		return true
    38  	})
    39  
    40  	return strings.Join(out, ",")
    41  }