@@ -85,6 +85,20 @@ func NewClass(mjr Major, mnr Minor, index Index) (Class, error) {
8585 return newClass (mjr , mnr , index )
8686}
8787
88+ // NewClassWIndex creates new index and class for provided 'mjr' Major and 'mnr' Minor.
89+ // Returns error if any of the input values are not valid.
90+ func NewClassWIndex (mjr Major , mnr Minor ) (Class , error ) {
91+ return newClassWIndex (mjr , mnr )
92+ }
93+
94+ func newClassWIndex (mjr Major , mnr Minor ) (Class , error ) {
95+ index , err := container .newIndex (mjr , mnr )
96+ if err != nil {
97+ return 0 , err
98+ }
99+ return newClass (mjr , mnr , index )
100+ }
101+
88102// MustNewClass gets new class from the provided 'minor' and 'index'.
89103// Panics if any of the arguments is not valid or out of bands.
90104func MustNewClass (mjr Major , mnr Minor , index Index ) Class {
@@ -95,6 +109,17 @@ func MustNewClass(mjr Major, mnr Minor, index Index) Class {
95109 return c
96110}
97111
112+ // MustNewClassWIndex creates new 'mjr' Major, 'mnr' Minor 'index' and then
113+ // a new Class for provided triplet.
114+ // Panics on error.
115+ func MustNewClassWIndex (mjr Major , mnr Minor ) Class {
116+ c , err := newClassWIndex (mjr , mnr )
117+ if err != nil {
118+ panic (err )
119+ }
120+ return c
121+ }
122+
98123// NewMinorClass gets the class from provided 'minor'.
99124// The function gets minor's major and gets the major/minor class.
100125func NewMinorClass (mjr Major , mnr Minor ) (Class , error ) {
0 commit comments