| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- // package def_txt -- внутренний текст.
- package def_txt
- import (
- "fmt"
- "strconv"
- "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs/def_spec_base"
- "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs/def_spec_fn"
- "gitp78su.ipnodns.ru/svi/kern/v4/lev0/result"
- )
- // LTxt -- неизменяемый текст
- type LTxt struct {
- val def_spec_base.Txt
- }
- // LetTxt -- создать новый внутренний неизменяемый текст.
- func LetTxt[T def_spec_fn.TxtConstraint](msg T, arg ...any) *LTxt {
- _msg := def_spec_fn.Sprintf(msg, arg...)
- sf := <xt{
- val: _msg,
- }
- return sf
- }
- // Byte -- возвращает внутренний текст в форме байтов.
- func (sf LTxt) Byte() []byte {
- return []byte(sf.val)
- }
- // Rune -- возвращает внутренний текст в формк рун.
- func (sf LTxt) Rune() []rune {
- return []rune(sf.val)
- }
- // Len -- возвращает длину текста.
- func (sf LTxt) Len() def_spec_base.Num {
- return def_spec_base.Num(len(sf.val))
- }
- // Get -- возвращает хранимое значение
- func (sf LTxt) Get() def_spec_base.Txt {
- return sf.val
- }
- // Atoi -- возвращает возможное число.
- func (sf LTxt) Atoi() *result.Result[def_spec_base.Num] {
- iRes, err := strconv.Atoi(sf.String())
- if err != nil {
- err := fmt.Errorf("LetTxt.Atot(): val(%q) not Int, err=\n\t%w",
- sf.String(), err)
- return result.ResErr[def_spec_base.Num](err)
- }
- return result.ResOk(def_spec_base.Num(iRes))
- }
- // String -- возвращает строку по требованию.
- func (sf LTxt) String() string {
- return string(sf.val)
- }
- // TrimSuffix -- обрезает суффикс текста.
- func (sf LTxt) TrimSuffix(suffix any) def_spec_base.Txt {
- suf := fmt.Sprintf("%v", suffix)
- txt := def_spec_fn.TrimSuffix(sf.String(), suf)
- return txt
- }
|