From c2490e1c6ad40457b5480ac9fb762f5c6a38ebd8 Mon Sep 17 00:00:00 2001 From: David Bartley Date: Sun, 12 Mar 2023 04:50:59 -0700 Subject: [PATCH] Add `InvPosition() InvPosition` to `Position` interface. --- invstmt.go | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/invstmt.go b/invstmt.go index bffd93b..77282a1 100644 --- a/invstmt.go +++ b/invstmt.go @@ -764,6 +764,7 @@ type InvPosition struct { // Position is an interface satisfied by all the other *Position types type Position interface { PositionType() string + InvPosition() InvPosition } // DebtPosition represents a position held in a debt security @@ -777,6 +778,11 @@ func (p DebtPosition) PositionType() string { return "POSDEBT" } +// InvPosition returns InvPos +func (p DebtPosition) InvPosition() InvPosition { + return p.InvPos +} + // MFPosition represents a position held in a mutual fund type MFPosition struct { XMLName xml.Name `xml:"POSMF"` @@ -792,6 +798,11 @@ func (p MFPosition) PositionType() string { return "POSMF" } +// InvPosition returns InvPos +func (p MFPosition) InvPosition() InvPosition { + return p.InvPos +} + // OptPosition represents a position held in an option type OptPosition struct { XMLName xml.Name `xml:"POSOPT"` @@ -804,6 +815,11 @@ func (p OptPosition) PositionType() string { return "POSOPT" } +// InvPosition returns InvPos +func (p OptPosition) InvPosition() InvPosition { + return p.InvPos +} + // OtherPosition represents a position held in a security type not covered by // the other *Position elements type OtherPosition struct { @@ -816,6 +832,11 @@ func (p OtherPosition) PositionType() string { return "POSOTHER" } +// InvPosition returns InvPos +func (p OtherPosition) InvPosition() InvPosition { + return p.InvPos +} + // StockPosition represents a position held in a stock type StockPosition struct { XMLName xml.Name `xml:"POSSTOCK"` @@ -830,6 +851,11 @@ func (p StockPosition) PositionType() string { return "POSSTOCK" } +// InvPosition returns InvPos +func (p StockPosition) InvPosition() InvPosition { + return p.InvPos +} + // PositionList represents a list of positions held in securities in an // investment account type PositionList []Position