package sentio import "github.com/samber/lo" type Portfolio interface { // Get returns Position of the symbol if exists in Portfolio Get(symbol string) (Position, bool) // Positions returns each Position we have in Portfolio Positions() []Position } type PortfolioStub []PositionStub func (p PortfolioStub) Get(symbol string) (Position, bool) { return lo.Find(p, func(item PositionStub) bool { return item.Symbol == symbol }) } func (p PortfolioStub) Positions() []Position { return lo.Map(p, func(item PositionStub, _ int) Position { return item }) } func NewPortfolioStub(elem ...PositionStub) Portfolio { var p PortfolioStub p = append(p, elem...) return p }