// package lev1 -- сборка уровня 1. package lev1 import ( "context" "fmt" mL0 "gitp78su.ipnodns.ru/svi/kern/v4/lev0" "gitp78su.ipnodns.ru/svi/kern/v4/lev0/helpers" mKt "gitp78su.ipnodns.ru/svi/kern/v4/lev0/ktypes" "gitp78su.ipnodns.ru/svi/kern/v4/lev1/kint" "gitp78su.ipnodns.ru/svi/kern/v4/lev1/local_ctx" "gitp78su.ipnodns.ru/svi/kern/v4/lev1/log_buf" "gitp78su.ipnodns.ru/svi/kern/v4/lev1/mock_env" "gitp78su.ipnodns.ru/svi/kern/v4/lev1/safe_bool" "gitp78su.ipnodns.ru/svi/kern/v4/lev1/safe_bool_react" "gitp78su.ipnodns.ru/svi/kern/v4/lev1/safe_int" "gitp78su.ipnodns.ru/svi/kern/v4/lev1/safe_string" ) type IMockEnv = mock_env.IMockEnv // MakeEnv -- возвращает новое мок-окружение. func MakeEnv() IMockEnv { sf := mock_env.MakeEnv() return sf } // OptionLogBuf -- опция для конфигурирования ILogBuf. type OptionLogBuf = log_buf.OptionLogBuf // OptPrefix -- устанавливает префикс в сообщениях. func OptPrefix(prefix string) OptionLogBuf { return log_buf.OptPrefix(prefix) } // OptIsTerm -- устанавливает признак вывода в терминал. func OptIsTerm(isTerm bool) OptionLogBuf { return log_buf.OptIsTerm(isTerm) } // NewLogBuf -- возвращает новый буферизованный лог. func NewLogBuf(opts ...log_buf.OptionLogBuf) mKt.ILogBuf { log := log_buf.NewLogBuf(opts...) return log } // NewSafeString -- возвращает новую потокобезопасную строку. func NewSafeString() mKt.ISafeString { str := safe_string.NewSafeString() return str } // NewSafeIntFromStr -- возвращает новое потокобезопасное целое из строки. func NewSafeIntFromStr(strVal string) *mL0.Result[mKt.ISafeInt] { return safe_int.NewSafeIntFromStr(strVal) } // NewSafeIntGetenv -- возвращает новое потокобезопасное целое из окружения. func NewSafeIntGetenv(env string) *mL0.Result[mKt.ISafeInt] { return safe_int.NewSafeIntGetenv(env) } // NewSafeInt -- возвращает новую потокобезопасную целочисленную переменную. func NewSafeInt(val int) mKt.ISafeInt { val_ := safe_int.NewSafeInt(val) return val_ } // NewSafeBoolReact -- возвращает новую потокобезопасную реактивную булеву переменную. func NewSafeBoolReact() mKt.ISafeBoolReact { val := safe_bool_react.NewSafeBoolReact() return val } // NewSafeBool -- возвращает новый потокобезопасный булевый признак. func NewSafeBool() mKt.ISafeBool { sb := safe_bool.NewSafeBool() return sb } // FnHassert -- проверяет с жёстким падением условие. type FnHassert = helpers.FnHassert // Hassert -- возвращает ссылку на функцию Hassert. func Hassert() FnHassert { return helpers.Hassert } // FnAssert -- проверка на правильность утверждения с падением в панику на локальном стенде (soft assert). type FnAssert = helpers.FnAssert // Assert -- возвращает ссылку на функцию Assert. func Assert() FnAssert { return helpers.Assert } // SleepMs -- спит миллисекунду. func SleepMs() { helpers.SleepMs() } // NewInt -- возвращает новую целочисленную переменную. func NewInt(val int) mKt.Int { val_ := kint.NewInt(val) return val_ } // NewLocalCtx -- возвращает новый локальный контекст. func NewLocalCtx(ctx context.Context) *mL0.Result[mKt.ILocalCtx] { resCtx := local_ctx.NewLocalCtx(ctx) if resCtx.IsErr() { err := fmt.Errorf("NewLocalCtx(): err=\n\t%w", resCtx.Err()) return mL0.NewErr[mKt.ILocalCtx](err) } return mL0.NewRes(mKt.ILocalCtx(resCtx.Val())) }