// package quark_int -- кварк целое package quark_int import ( "strconv" . "gitp78su.ipnodns.ru/svi/kern/v4/lev0/helpers" "gitp78su.ipnodns.ru/svi/kern/v4/lev0/quark/quark_base" "gitp78su.ipnodns.ru/svi/kern/v4/lev0/quark/quark_val" ) // QInt -- кварк целое type QInt[M quark_val.CMod] struct { *quark_base.QBase[M, int] } // NewQInt -- создать новый фиксированный кварк целое func NewQInt(v int) *QInt[quark_val.Fix] { optMass := quark_base.QBaseOptMass[quark_val.Fix, int](8) optVal := quark_base.QBaseOptVal(v) sf := &QInt[quark_val.Fix]{ QBase: quark_base.NewQBase(optMass, optVal), } return sf } // NewQIntMut -- создать новый изменяемый кварк целое func NewQIntMut(v int) *QInt[quark_val.Mut] { optMass := quark_base.QBaseOptMass[quark_val.Mut, int](8) optVal := quark_base.QBaseOptValMut(v) sf := &QInt[quark_val.Mut]{ QBase: quark_base.NewQBaseMut(optMass, optVal), } return sf } // Get -- возвращает хранимое значение func (sf *QInt[M]) Get() int { return sf.Val().Get() } // Set -- установить значение func Set(sf *QInt[quark_val.Mut], v int) { quark_val.Set(sf.Val(), v) } // FromStr -- установить значение из строки func FromStr(sf *QInt[quark_val.Mut], s string) { iVal, err := strconv.Atoi(s) Hassert(err == nil, "QInt.FromStr(): не удалось преобразовать строку(%v) в int, err=\n\t%v", s, err) quark_val.Set(sf.Val(), iVal) }