From 5d73d30a00f4d6b578bffeb0cb585eff4f1d29ba Mon Sep 17 00:00:00 2001 From: Pavel Vetokhin Date: Sun, 11 Oct 2026 09:18:10 +0300 Subject: [PATCH 1/4] refactor: split five layer-1 aggregates into core and adapter Split pool/compstep, proc/compstep, proc/commturn, proc/termdef and proc/typedef into an agnostic core/ package and a toolkit-specific adapter/ package, following the pool/typedef pilot and the layer-0 split. - Move the models, ports, behaviour and the query-builder port into core/, exporting identifiers that cross the boundary - Move the pgx DAO, sqlbuilder, goverter conversions, wire/view models and the fx module into adapter/ - Keep wire models (form/JSON tags, SDK references) in adapter/ - Keep SQL table names in adapter/ - Point consumers at the appropriate half - Make the proc/typedef query-builder test assert instead of print - Extend the boundary check to reject any agnostic core package importing the SDK Refs orglang/go-workspace#6 --- app/main.go | 4 +- app/web/me_echo.go | 2 +- pool/compexec/core.go | 4 +- pool/compexec/me.go | 2 +- pool/compexec/me_echo.go | 2 +- pool/compexec/me_pond.go | 2 +- pool/compexec/me_workerpool.go | 2 +- pool/compstep/{ => adapter}/tc_goverter.go | 8 ++- pool/compstep/{ => core}/core.go | 2 +- proc/commexch/core.go | 2 +- proc/commturn/adapter/di_fx.go | 13 ++++ proc/commturn/{ => adapter}/ds_pgx.go | 16 ++--- proc/commturn/adapter/tc.go | 63 +++++++++++++++++++ proc/commturn/adapter/tc_goverter.go | 14 +++++ proc/commturn/{ => core}/core.go | 2 +- proc/commturn/{ => core}/ds.go | 12 ++-- proc/commturn/di_fx.go | 11 ---- proc/commturn/tc.go | 62 ------------------ proc/commturn/tc_goverter.go | 10 --- proc/compexec/core.go | 8 +-- proc/compexec/me_echo.go | 2 +- proc/compexec/tc_goverter.go | 2 +- proc/compstep/adapter/tc_goverter.go | 16 +++++ proc/compstep/{ => core}/core.go | 2 +- proc/compstep/tc_goverter.go | 12 ---- proc/termdec/core.go | 2 +- proc/termdec/tc_goverter.go | 2 +- proc/termdef/adapter/di_fx.go | 13 ++++ proc/termdef/{ => adapter}/ds_pgx.go | 13 ++-- proc/termdef/{ => core}/core.go | 6 +- proc/termdef/{ => core}/ds.go | 2 +- proc/termdef/di_fx.go | 11 ---- proc/typedef/{ => adapter}/di_fx.go | 10 +-- proc/typedef/{ => adapter}/ds_pgx.go | 54 ++++++++-------- proc/typedef/{ => adapter}/iv_ozzo.go | 2 +- proc/typedef/{ => adapter}/me_echo.go | 7 ++- proc/typedef/adapter/qb.go | 6 ++ proc/typedef/{ => adapter}/qb_sqlbuilder.go | 12 ++-- proc/typedef/adapter/qb_sqlbuilder_test.go | 37 +++++++++++ proc/typedef/{ => adapter}/tc_goverter.go | 26 ++++---- proc/typedef/{ => adapter}/te_stdlib.go | 2 +- proc/typedef/{ => adapter}/vp.go | 2 +- proc/typedef/{ => adapter}/vp/bs5/env.html | 0 proc/typedef/{ => adapter}/vp/bs5/role.html | 0 proc/typedef/{ => adapter}/vp/bs5/tp_dl.html | 0 .../{ => adapter}/vp/bs5/vp_template.html | 0 proc/typedef/{ => adapter}/vp_echo.go | 9 +-- proc/typedef/{ => core}/core.go | 8 +-- proc/typedef/{ => core}/ds.go | 4 +- proc/typedef/core/qb.go | 6 ++ proc/typedef/qb.go | 11 ---- proc/typedef/qb_sqlbuilder_test.go | 15 ----- prog/core.go | 2 +- prog/tc.go | 2 +- test/arch/arch.go | 14 ++++- test/arch/check_test.go | 30 +++++++++ test/arch/cmd/main.go | 2 +- 57 files changed, 339 insertions(+), 246 deletions(-) rename pool/compstep/{ => adapter}/tc_goverter.go (54%) rename pool/compstep/{ => core}/core.go (90%) create mode 100644 proc/commturn/adapter/di_fx.go rename proc/commturn/{ => adapter}/ds_pgx.go (83%) create mode 100644 proc/commturn/adapter/tc.go create mode 100644 proc/commturn/adapter/tc_goverter.go rename proc/commturn/{ => core}/core.go (98%) rename proc/commturn/{ => core}/ds.go (73%) delete mode 100644 proc/commturn/di_fx.go delete mode 100644 proc/commturn/tc.go delete mode 100644 proc/commturn/tc_goverter.go create mode 100644 proc/compstep/adapter/tc_goverter.go rename proc/compstep/{ => core}/core.go (90%) delete mode 100644 proc/compstep/tc_goverter.go create mode 100644 proc/termdef/adapter/di_fx.go rename proc/termdef/{ => adapter}/ds_pgx.go (55%) rename proc/termdef/{ => core}/core.go (96%) rename proc/termdef/{ => core}/ds.go (99%) delete mode 100644 proc/termdef/di_fx.go rename proc/typedef/{ => adapter}/di_fx.go (61%) rename proc/typedef/{ => adapter}/ds_pgx.go (82%) rename proc/typedef/{ => adapter}/iv_ozzo.go (93%) rename proc/typedef/{ => adapter}/me_echo.go (94%) create mode 100644 proc/typedef/adapter/qb.go rename proc/typedef/{ => adapter}/qb_sqlbuilder.go (58%) create mode 100644 proc/typedef/adapter/qb_sqlbuilder_test.go rename proc/typedef/{ => adapter}/tc_goverter.go (53%) rename proc/typedef/{ => adapter}/te_stdlib.go (96%) rename proc/typedef/{ => adapter}/vp.go (93%) rename proc/typedef/{ => adapter}/vp/bs5/env.html (100%) rename proc/typedef/{ => adapter}/vp/bs5/role.html (100%) rename proc/typedef/{ => adapter}/vp/bs5/tp_dl.html (100%) rename proc/typedef/{ => adapter}/vp/bs5/vp_template.html (100%) rename proc/typedef/{ => adapter}/vp_echo.go (91%) rename proc/typedef/{ => core}/core.go (98%) rename proc/typedef/{ => core}/ds.go (94%) create mode 100644 proc/typedef/core/qb.go delete mode 100644 proc/typedef/qb.go delete mode 100644 proc/typedef/qb_sqlbuilder_test.go diff --git a/app/main.go b/app/main.go index c6680a23..9bd65db3 100644 --- a/app/main.go +++ b/app/main.go @@ -19,8 +19,8 @@ import ( proccommexch "orglang/go-engine/proc/commexch" "orglang/go-engine/proc/compexec" "orglang/go-engine/proc/termdec" - "orglang/go-engine/proc/termdef" - "orglang/go-engine/proc/typedef" + termdef "orglang/go-engine/proc/termdef/adapter" + typedef "orglang/go-engine/proc/typedef/adapter" typeexp "orglang/go-engine/proc/typeexp/adapter" "orglang/go-engine/app/web" diff --git a/app/web/me_echo.go b/app/web/me_echo.go index b58bc03a..177f6fe2 100644 --- a/app/web/me_echo.go +++ b/app/web/me_echo.go @@ -10,7 +10,7 @@ import ( "orglang/go-engine/lib/te" "orglang/go-engine/adt/typesem" - "orglang/go-engine/proc/typedef" + typedef "orglang/go-engine/proc/typedef/core" ) // Adapter diff --git a/pool/compexec/core.go b/pool/compexec/core.go index 84644ea8..beca4474 100644 --- a/pool/compexec/core.go +++ b/pool/compexec/core.go @@ -19,14 +19,14 @@ import ( "orglang/go-engine/pool/commexch" "orglang/go-engine/pool/commturn" - "orglang/go-engine/pool/compstep" + compstep "orglang/go-engine/pool/compstep/core" compvar "orglang/go-engine/pool/compvar/core" "orglang/go-engine/pool/termdef" termexp "orglang/go-engine/pool/termexp/core" typeexp "orglang/go-engine/pool/typeexp/core" proccompexec "orglang/go-engine/proc/compexec" - proctermdef "orglang/go-engine/proc/termdef" + proctermdef "orglang/go-engine/proc/termdef/core" ) type API interface { diff --git a/pool/compexec/me.go b/pool/compexec/me.go index bc78400c..1a8b27c0 100644 --- a/pool/compexec/me.go +++ b/pool/compexec/me.go @@ -1,7 +1,7 @@ package compexec import ( - "orglang/go-engine/pool/compstep" + compstep "orglang/go-engine/pool/compstep/core" ) type Broker interface { diff --git a/pool/compexec/me_echo.go b/pool/compexec/me_echo.go index 06309e7f..3bb3dedd 100644 --- a/pool/compexec/me_echo.go +++ b/pool/compexec/me_echo.go @@ -11,7 +11,7 @@ import ( sdk "github.com/orglang/go-sdk/pool/compstep" "orglang/go-engine/adt/compsem" - "orglang/go-engine/pool/compstep" + compstep "orglang/go-engine/pool/compstep/adapter" ) // Server-side primary adapter diff --git a/pool/compexec/me_pond.go b/pool/compexec/me_pond.go index a55deb43..c274ba02 100644 --- a/pool/compexec/me_pond.go +++ b/pool/compexec/me_pond.go @@ -2,7 +2,7 @@ package compexec import ( "log/slog" - "orglang/go-engine/pool/compstep" + compstep "orglang/go-engine/pool/compstep/core" "reflect" "github.com/alitto/pond/v2" diff --git a/pool/compexec/me_workerpool.go b/pool/compexec/me_workerpool.go index f2821d3f..fb9bbab0 100644 --- a/pool/compexec/me_workerpool.go +++ b/pool/compexec/me_workerpool.go @@ -2,7 +2,7 @@ package compexec import ( "log/slog" - "orglang/go-engine/pool/compstep" + compstep "orglang/go-engine/pool/compstep/core" "reflect" "github.com/gammazero/workerpool" diff --git a/pool/compstep/tc_goverter.go b/pool/compstep/adapter/tc_goverter.go similarity index 54% rename from pool/compstep/tc_goverter.go rename to pool/compstep/adapter/tc_goverter.go index 7b110f14..8268cf18 100644 --- a/pool/compstep/tc_goverter.go +++ b/pool/compstep/adapter/tc_goverter.go @@ -1,7 +1,9 @@ -package compstep +package adapter import ( "github.com/orglang/go-sdk/pool/compstep" + + poolcompstep "orglang/go-engine/pool/compstep/core" ) // goverter:variables @@ -9,6 +11,6 @@ import ( // goverter:extend orglang/go-engine/adt/compsem:Msg.* // goverter:extend orglang/go-engine/pool/termexp/adapter:Msg.* var ( - MsgToStepSpec func(compstep.StepSpec) (StepSpec, error) - MsgFromStepSpec func(StepSpec) compstep.StepSpec + MsgToStepSpec func(compstep.StepSpec) (poolcompstep.StepSpec, error) + MsgFromStepSpec func(poolcompstep.StepSpec) compstep.StepSpec ) diff --git a/pool/compstep/core.go b/pool/compstep/core/core.go similarity index 90% rename from pool/compstep/core.go rename to pool/compstep/core/core.go index 81095e8e..aec01568 100644 --- a/pool/compstep/core.go +++ b/pool/compstep/core/core.go @@ -1,4 +1,4 @@ -package compstep +package core import ( "orglang/go-engine/adt/compsem" diff --git a/proc/commexch/core.go b/proc/commexch/core.go index ae9940d9..d2054305 100644 --- a/proc/commexch/core.go +++ b/proc/commexch/core.go @@ -5,7 +5,7 @@ import ( "orglang/go-engine/adt/identity" "orglang/go-engine/adt/option" "orglang/go-engine/adt/seqnum" - "orglang/go-engine/proc/commturn" + commturn "orglang/go-engine/proc/commturn/core" ) type ExchRec struct { diff --git a/proc/commturn/adapter/di_fx.go b/proc/commturn/adapter/di_fx.go new file mode 100644 index 00000000..13b0ccef --- /dev/null +++ b/proc/commturn/adapter/di_fx.go @@ -0,0 +1,13 @@ +package adapter + +import ( + "go.uber.org/fx" + + proccommturn "orglang/go-engine/proc/commturn/core" +) + +var Module = fx.Module("proc/commturn", + fx.Provide( + fx.Annotate(NewDaoPgx, fx.As(new(proccommturn.Repo))), + ), +) diff --git a/proc/commturn/ds_pgx.go b/proc/commturn/adapter/ds_pgx.go similarity index 83% rename from proc/commturn/ds_pgx.go rename to proc/commturn/adapter/ds_pgx.go index ba3f66bc..21310da8 100644 --- a/proc/commturn/ds_pgx.go +++ b/proc/commturn/adapter/ds_pgx.go @@ -1,4 +1,4 @@ -package commturn +package adapter import ( "errors" @@ -11,6 +11,8 @@ import ( "orglang/go-engine/lib/lf" "orglang/go-engine/adt/identity" + + proccommturn "orglang/go-engine/proc/commturn/core" ) type daoPgx struct { @@ -18,16 +20,16 @@ type daoPgx struct { } // for compilation purposes -func newRepo() Repo { +func newRepo() proccommturn.Repo { return new(daoPgx) } -func newDaoPgx(l *slog.Logger) *daoPgx { +func NewDaoPgx(l *slog.Logger) proccommturn.Repo { name := slog.String("name", reflect.TypeFor[daoPgx]().Name()) return &daoPgx{l.With(name)} } -func (dao *daoPgx) InsertRecs(uow db.UoW, recs ...TurnRec) error { +func (dao *daoPgx) InsertRecs(uow db.UoW, recs ...proccommturn.TurnRec) error { dtos, err := DataFromStepRecs(recs) if err != nil { dao.log.Error("conversion failed") @@ -59,7 +61,7 @@ func (dao *daoPgx) InsertRecs(uow db.UoW, recs ...TurnRec) error { return nil } -func (dao *daoPgx) SelectRecs(uow db.UoW, rid identity.ADT) (TurnRec, error) { +func (dao *daoPgx) SelectRecs(uow db.UoW, rid identity.ADT) (proccommturn.TurnRec, error) { query := ` select id, kind, pid, vid, spec @@ -68,14 +70,14 @@ func (dao *daoPgx) SelectRecs(uow db.UoW, rid identity.ADT) (TurnRec, error) { return dao.execute(uow, query, rid.String()) } -func (dao *daoPgx) execute(uow db.UoW, query string, arg string) (TurnRec, error) { +func (dao *daoPgx) execute(uow db.UoW, query string, arg string) (proccommturn.TurnRec, error) { rows, err := uow.Pgx.Query(uow.Ctx, query, arg) if err != nil { dao.log.Error("query execution failed", slog.String("q", query)) return nil, err } defer rows.Close() - dto, err := pgx.CollectExactlyOneRow(rows, pgx.RowToStructByName[StepRecDS]) + dto, err := pgx.CollectExactlyOneRow(rows, pgx.RowToStructByName[proccommturn.StepRecDS]) if errors.Is(err, pgx.ErrNoRows) { return nil, nil } diff --git a/proc/commturn/adapter/tc.go b/proc/commturn/adapter/tc.go new file mode 100644 index 00000000..5badac83 --- /dev/null +++ b/proc/commturn/adapter/tc.go @@ -0,0 +1,63 @@ +package adapter + +import ( + "fmt" + + proccommturn "orglang/go-engine/proc/commturn/core" + termexp "orglang/go-engine/proc/termexp/adapter" +) + +func dataFromStepRec(r proccommturn.TurnRec) (proccommturn.StepRecDS, error) { + if r == nil { + return proccommturn.StepRecDS{}, nil + } + switch rec := r.(type) { + case proccommturn.PubRec: + msgVal, err := termexp.DataFromExpRec(rec.ValExp) + if err != nil { + return proccommturn.StepRecDS{}, err + } + return proccommturn.StepRecDS{ + K: proccommturn.MsgStep, + ProcER: msgVal, + }, nil + case proccommturn.SubRec: + svcCont, err := termexp.DataFromExpRec(rec.ContExp) + if err != nil { + return proccommturn.StepRecDS{}, err + } + return proccommturn.StepRecDS{ + K: proccommturn.SvcStep, + ProcER: svcCont, + }, nil + default: + panic(proccommturn.ErrRecTypeUnexpected(rec)) + } +} + +func dataToStepRec(dto proccommturn.StepRecDS) (proccommturn.TurnRec, error) { + var nilData proccommturn.StepRecDS + if dto == nilData { + return nil, nil + } + switch dto.K { + case proccommturn.MsgStep: + val, err := termexp.DataToExpRec(dto.ProcER) + if err != nil { + return nil, err + } + return proccommturn.PubRec{ValExp: val}, nil + case proccommturn.SvcStep: + cont, err := termexp.DataToExpRec(dto.ProcER) + if err != nil { + return nil, err + } + return proccommturn.SubRec{ContExp: cont}, nil + default: + panic(errUnexpectedStepKind(dto.K)) + } +} + +func errUnexpectedStepKind(k proccommturn.StepKindDS) error { + return fmt.Errorf("unexpected step kind: %v", k) +} diff --git a/proc/commturn/adapter/tc_goverter.go b/proc/commturn/adapter/tc_goverter.go new file mode 100644 index 00000000..c7afcd1c --- /dev/null +++ b/proc/commturn/adapter/tc_goverter.go @@ -0,0 +1,14 @@ +package adapter + +import ( + proccommturn "orglang/go-engine/proc/commturn/core" +) + +// goverter:variables +// goverter:output:format assign-variable +// goverter:extend orglang/go-engine/adt/identity:Convert.* +// goverter:extend data.* +var ( + DataToStepRecs func([]proccommturn.StepRecDS) ([]proccommturn.TurnRec, error) + DataFromStepRecs func([]proccommturn.TurnRec) ([]proccommturn.StepRecDS, error) +) diff --git a/proc/commturn/core.go b/proc/commturn/core/core.go similarity index 98% rename from proc/commturn/core.go rename to proc/commturn/core/core.go index 8202e4b6..d2ae941c 100644 --- a/proc/commturn/core.go +++ b/proc/commturn/core/core.go @@ -1,4 +1,4 @@ -package commturn +package core import ( "fmt" diff --git a/proc/commturn/ds.go b/proc/commturn/core/ds.go similarity index 73% rename from proc/commturn/ds.go rename to proc/commturn/core/ds.go index 0b66c33e..ef5a2280 100644 --- a/proc/commturn/ds.go +++ b/proc/commturn/core/ds.go @@ -1,4 +1,4 @@ -package commturn +package core import ( "database/sql" @@ -13,16 +13,16 @@ type Repo interface { } type StepRecDS struct { - K stepKindDS `db:"kind"` + K StepKindDS `db:"kind"` ExecID sql.NullString `db:"impl_id"` ChnlID sql.NullString `db:"chnl_id"` ProcER termexp.ExpRecDS `db:"proc_er"` } -type stepKindDS int +type StepKindDS int const ( - nonStep = stepKindDS(iota) - msgStep - svcStep + NonStep StepKindDS = iota + MsgStep + SvcStep ) diff --git a/proc/commturn/di_fx.go b/proc/commturn/di_fx.go deleted file mode 100644 index d5d55080..00000000 --- a/proc/commturn/di_fx.go +++ /dev/null @@ -1,11 +0,0 @@ -package commturn - -import ( - "go.uber.org/fx" -) - -var Module = fx.Module("proc/commturn", - fx.Provide( - fx.Annotate(newDaoPgx, fx.As(new(Repo))), - ), -) diff --git a/proc/commturn/tc.go b/proc/commturn/tc.go deleted file mode 100644 index 0961bd48..00000000 --- a/proc/commturn/tc.go +++ /dev/null @@ -1,62 +0,0 @@ -package commturn - -import ( - "fmt" - - termexp "orglang/go-engine/proc/termexp/adapter" -) - -func dataFromStepRec(r TurnRec) (StepRecDS, error) { - if r == nil { - return StepRecDS{}, nil - } - switch rec := r.(type) { - case PubRec: - msgVal, err := termexp.DataFromExpRec(rec.ValExp) - if err != nil { - return StepRecDS{}, err - } - return StepRecDS{ - K: msgStep, - ProcER: msgVal, - }, nil - case SubRec: - svcCont, err := termexp.DataFromExpRec(rec.ContExp) - if err != nil { - return StepRecDS{}, err - } - return StepRecDS{ - K: svcStep, - ProcER: svcCont, - }, nil - default: - panic(ErrRecTypeUnexpected(rec)) - } -} - -func dataToStepRec(dto StepRecDS) (TurnRec, error) { - var nilData StepRecDS - if dto == nilData { - return nil, nil - } - switch dto.K { - case msgStep: - val, err := termexp.DataToExpRec(dto.ProcER) - if err != nil { - return nil, err - } - return PubRec{ValExp: val}, nil - case svcStep: - cont, err := termexp.DataToExpRec(dto.ProcER) - if err != nil { - return nil, err - } - return SubRec{ContExp: cont}, nil - default: - panic(errUnexpectedStepKind(dto.K)) - } -} - -func errUnexpectedStepKind(k stepKindDS) error { - return fmt.Errorf("unexpected step kind: %v", k) -} diff --git a/proc/commturn/tc_goverter.go b/proc/commturn/tc_goverter.go deleted file mode 100644 index d20573dc..00000000 --- a/proc/commturn/tc_goverter.go +++ /dev/null @@ -1,10 +0,0 @@ -package commturn - -// goverter:variables -// goverter:output:format assign-variable -// goverter:extend orglang/go-engine/adt/identity:Convert.* -// goverter:extend data.* -var ( - DataToStepRecs func([]StepRecDS) ([]TurnRec, error) - DataFromStepRecs func([]TurnRec) ([]StepRecDS, error) -) diff --git a/proc/compexec/core.go b/proc/compexec/core.go index 77e0d7b1..5023f02f 100644 --- a/proc/compexec/core.go +++ b/proc/compexec/core.go @@ -20,12 +20,12 @@ import ( "orglang/go-engine/adt/uniqsym" "orglang/go-engine/adt/valkey" "orglang/go-engine/proc/commexch" - "orglang/go-engine/proc/commturn" - "orglang/go-engine/proc/compstep" + commturn "orglang/go-engine/proc/commturn/core" + compstep "orglang/go-engine/proc/compstep/core" "orglang/go-engine/proc/termdec" - "orglang/go-engine/proc/termdef" + termdef "orglang/go-engine/proc/termdef/core" termexp "orglang/go-engine/proc/termexp/core" - "orglang/go-engine/proc/typedef" + typedef "orglang/go-engine/proc/typedef/core" typeexp "orglang/go-engine/proc/typeexp/core" ) diff --git a/proc/compexec/me_echo.go b/proc/compexec/me_echo.go index 22c019e1..66483fdb 100644 --- a/proc/compexec/me_echo.go +++ b/proc/compexec/me_echo.go @@ -13,7 +13,7 @@ import ( "orglang/go-engine/lib/lf" "orglang/go-engine/adt/compsem" - "orglang/go-engine/proc/compstep" + compstep "orglang/go-engine/proc/compstep/adapter" ) // Server-side primary adapter diff --git a/proc/compexec/tc_goverter.go b/proc/compexec/tc_goverter.go index 1424d784..b876b033 100644 --- a/proc/compexec/tc_goverter.go +++ b/proc/compexec/tc_goverter.go @@ -18,7 +18,7 @@ var ( // goverter:variables // goverter:output:format assign-variable // goverter:extend orglang/go-engine/adt/identity:Convert.* -// goverter:extend orglang/go-engine/proc/commturn:Data.* +// goverter:extend orglang/go-engine/proc/commturn/adapter:Data.* // goverter:extend orglang/go-engine/adt/compvar:Data.* var ( // goverter:map . CompRef | dataToSemRef diff --git a/proc/compstep/adapter/tc_goverter.go b/proc/compstep/adapter/tc_goverter.go new file mode 100644 index 00000000..975814eb --- /dev/null +++ b/proc/compstep/adapter/tc_goverter.go @@ -0,0 +1,16 @@ +package adapter + +import ( + "github.com/orglang/go-sdk/proc/compstep" + + proccompstep "orglang/go-engine/proc/compstep/core" +) + +// goverter:variables +// goverter:output:format assign-variable +// goverter:extend orglang/go-engine/adt/identity:Convert.* +// goverter:extend orglang/go-engine/proc/termexp/adapter:Msg.* +var ( + MsgFromStepSpec func(proccompstep.StepSpec) compstep.StepSpec + MsgToStepSpec func(compstep.StepSpec) (proccompstep.StepSpec, error) +) diff --git a/proc/compstep/core.go b/proc/compstep/core/core.go similarity index 90% rename from proc/compstep/core.go rename to proc/compstep/core/core.go index 08157284..c15cf3e0 100644 --- a/proc/compstep/core.go +++ b/proc/compstep/core/core.go @@ -1,4 +1,4 @@ -package compstep +package core import ( "orglang/go-engine/adt/compsem" diff --git a/proc/compstep/tc_goverter.go b/proc/compstep/tc_goverter.go deleted file mode 100644 index e7d3470b..00000000 --- a/proc/compstep/tc_goverter.go +++ /dev/null @@ -1,12 +0,0 @@ -package compstep - -import "github.com/orglang/go-sdk/proc/compstep" - -// goverter:variables -// goverter:output:format assign-variable -// goverter:extend orglang/go-engine/adt/identity:Convert.* -// goverter:extend orglang/go-engine/proc/termexp/adapter:Msg.* -var ( - MsgFromStepSpec func(StepSpec) compstep.StepSpec - MsgToStepSpec func(compstep.StepSpec) (StepSpec, error) -) diff --git a/proc/termdec/core.go b/proc/termdec/core.go index 5c2256ee..50988f1a 100644 --- a/proc/termdec/core.go +++ b/proc/termdec/core.go @@ -14,7 +14,7 @@ import ( "orglang/go-engine/adt/typesem" "orglang/go-engine/adt/uniqsym" - "orglang/go-engine/proc/typedef" + typedef "orglang/go-engine/proc/typedef/core" ) type API interface { diff --git a/proc/termdec/tc_goverter.go b/proc/termdec/tc_goverter.go index 2899304f..6f1a5711 100644 --- a/proc/termdec/tc_goverter.go +++ b/proc/termdec/tc_goverter.go @@ -8,7 +8,7 @@ import ( // goverter:output:format assign-variable // goverter:extend orglang/go-engine/adt/identity:Convert.* // goverter:extend orglang/go-engine/adt/uniqsym:Convert.* -// goverter:extend orglang/go-engine/proc/typedef:Msg.* +// goverter:extend orglang/go-engine/proc/typedef/adapter:Msg.* var ( MsgToDecSpec func(termdec.DecSpec) (DecSpec, error) MsgFromDecSpec func(DecSpec) termdec.DecSpec diff --git a/proc/termdef/adapter/di_fx.go b/proc/termdef/adapter/di_fx.go new file mode 100644 index 00000000..f6711525 --- /dev/null +++ b/proc/termdef/adapter/di_fx.go @@ -0,0 +1,13 @@ +package adapter + +import ( + "go.uber.org/fx" + + proctermdef "orglang/go-engine/proc/termdef/core" +) + +var Module = fx.Module("proc/termdef", + fx.Provide( + fx.Annotate(NewDaoPgx, fx.As(new(proctermdef.Repo))), + ), +) diff --git a/proc/termdef/ds_pgx.go b/proc/termdef/adapter/ds_pgx.go similarity index 55% rename from proc/termdef/ds_pgx.go rename to proc/termdef/adapter/ds_pgx.go index 3fb8bcc8..48cd0e36 100644 --- a/proc/termdef/ds_pgx.go +++ b/proc/termdef/adapter/ds_pgx.go @@ -1,9 +1,12 @@ -package termdef +package adapter import ( "log/slog" - "orglang/go-engine/lib/db" "reflect" + + "orglang/go-engine/lib/db" + + proctermdef "orglang/go-engine/proc/termdef/core" ) // Adapter @@ -12,15 +15,15 @@ type daoPgx struct { } // for compilation purposes -func newRepo() Repo { +func newRepo() proctermdef.Repo { return new(daoPgx) } -func newDaoPgx(l *slog.Logger) *daoPgx { +func NewDaoPgx(l *slog.Logger) proctermdef.Repo { name := slog.String("name", reflect.TypeFor[daoPgx]().Name()) return &daoPgx{l.With(name)} } -func (dao *daoPgx) InsertProc(db.UoW, DefRec) error { +func (dao *daoPgx) InsertProc(db.UoW, proctermdef.DefRec) error { return nil } diff --git a/proc/termdef/core.go b/proc/termdef/core/core.go similarity index 96% rename from proc/termdef/core.go rename to proc/termdef/core/core.go index b5108498..c514f3d6 100644 --- a/proc/termdef/core.go +++ b/proc/termdef/core/core.go @@ -1,4 +1,4 @@ -package termdef +package core import ( "fmt" @@ -42,11 +42,11 @@ func newAPI() API { return new(service) } -func newService( +func NewService( procs Repo, transactor db.Transactor, log *slog.Logger, -) *service { +) API { return &service{procs, transactor, log} } diff --git a/proc/termdef/ds.go b/proc/termdef/core/ds.go similarity index 99% rename from proc/termdef/ds.go rename to proc/termdef/core/ds.go index 4ba59923..543de6fe 100644 --- a/proc/termdef/ds.go +++ b/proc/termdef/core/ds.go @@ -1,4 +1,4 @@ -package termdef +package core import ( "orglang/go-engine/lib/db" diff --git a/proc/termdef/di_fx.go b/proc/termdef/di_fx.go deleted file mode 100644 index b38803ac..00000000 --- a/proc/termdef/di_fx.go +++ /dev/null @@ -1,11 +0,0 @@ -package termdef - -import ( - "go.uber.org/fx" -) - -var Module = fx.Module("proc/termdef", - fx.Provide( - fx.Annotate(newDaoPgx, fx.As(new(Repo))), - ), -) diff --git a/proc/typedef/di_fx.go b/proc/typedef/adapter/di_fx.go similarity index 61% rename from proc/typedef/di_fx.go rename to proc/typedef/adapter/di_fx.go index 96a3f693..afdac5b8 100644 --- a/proc/typedef/di_fx.go +++ b/proc/typedef/adapter/di_fx.go @@ -1,4 +1,4 @@ -package typedef +package adapter import ( "go.uber.org/fx" @@ -6,18 +6,20 @@ import ( "orglang/go-engine/lib/te" "orglang/go-engine/adt/descsem" + + proctypedef "orglang/go-engine/proc/typedef/core" ) var Module = fx.Module("adproct/typedef", fx.Provide( - fx.Annotate(newService, fx.As(new(API))), - fx.Annotate(newDaoPgx, fx.As(new(Repo))), + fx.Annotate(proctypedef.NewService, fx.As(new(proctypedef.API))), + fx.Annotate(NewDaoPgx, fx.As(new(proctypedef.Repo))), ), fx.Provide( fx.Private, newControllerEcho, newEchoPresenter, - fx.Annotate(newSQLBuilder, fx.As(new(queryBuilder))), + fx.Annotate(newSQLBuilder, fx.As(new(proctypedef.QueryBuilder))), fx.Annotate(newRendererStdlib, fx.As(new(te.Renderer))), fx.Annotate(descsem.NewDaoPgx(descBinds), fx.As(new(descsem.Repo))), ), diff --git a/proc/typedef/ds_pgx.go b/proc/typedef/adapter/ds_pgx.go similarity index 82% rename from proc/typedef/ds_pgx.go rename to proc/typedef/adapter/ds_pgx.go index c191a3dd..943de836 100644 --- a/proc/typedef/ds_pgx.go +++ b/proc/typedef/adapter/ds_pgx.go @@ -1,4 +1,4 @@ -package typedef +package adapter import ( "errors" @@ -13,24 +13,26 @@ import ( "orglang/go-engine/adt/identity" "orglang/go-engine/adt/typesem" "orglang/go-engine/adt/uniqsym" + + proctypedef "orglang/go-engine/proc/typedef/core" ) type daoPgx struct { - qb queryBuilder + qb proctypedef.QueryBuilder log *slog.Logger } -func newDaoPgx(qb queryBuilder, log *slog.Logger) *daoPgx { +func NewDaoPgx(qb proctypedef.QueryBuilder, log *slog.Logger) proctypedef.Repo { name := slog.String("name", reflect.TypeFor[daoPgx]().Name()) return &daoPgx{qb, log.With(name)} } // for compilation purposes -func newRepo() Repo { +func newRepo() proctypedef.Repo { return new(daoPgx) } -func (dao *daoPgx) AddRec(uow db.UoW, rec DefRec) error { +func (dao *daoPgx) AddRec(uow db.UoW, rec proctypedef.DefRec) error { idAttr := slog.Any("typeID", rec.TypeRef.TypeID) dao.log.Log(uow.Ctx, lf.LevelTrace, "addition started", idAttr) dto, err := DataFromDefRec(rec) @@ -38,7 +40,7 @@ func (dao *daoPgx) AddRec(uow db.UoW, rec DefRec) error { dao.log.Error("model conversion failed", idAttr) return err } - sql, args := dao.qb.insertRec(dto) + sql, args := dao.qb.InsertRec(dto) _, err = uow.Pgx.Exec(uow.Ctx, sql, args...) if err != nil { dao.log.Error("query execution failed", idAttr, slog.String("sql", sql)) @@ -48,7 +50,7 @@ func (dao *daoPgx) AddRec(uow db.UoW, rec DefRec) error { return nil } -func (dao *daoPgx) ModifyRec(uow db.UoW, rec DefRec) error { +func (dao *daoPgx) ModifyRec(uow db.UoW, rec proctypedef.DefRec) error { idAttr := slog.Any("typeID", rec.TypeRef.TypeID) dao.log.Log(uow.Ctx, lf.LevelTrace, "modification started", idAttr) dto, err := DataFromDefRec(rec) @@ -67,7 +69,7 @@ func (dao *daoPgx) ModifyRec(uow db.UoW, rec DefRec) error { } if ct.RowsAffected() == 0 { dao.log.Error("entity update failed", idAttr) - return errOptimisticUpdate(rec.TypeRef.TypeRN - 1) + return proctypedef.ErrOptimisticUpdate(rec.TypeRef.TypeRN - 1) } dao.log.Log(uow.Ctx, lf.LevelTrace, "modification succeed", idAttr) return nil @@ -89,43 +91,43 @@ func (dao *daoPgx) GetRefs(uow db.UoW) ([]typesem.SemRef, error) { return typesem.DataToRefs(dtos) } -func (dao *daoPgx) GetRecByRef(uow db.UoW, ref typesem.SemRef) (DefRec, error) { +func (dao *daoPgx) GetRecByRef(uow db.UoW, ref typesem.SemRef) (proctypedef.DefRec, error) { refAttr := slog.Any("ref", ref) rows, err := uow.Pgx.Query(uow.Ctx, selectRecByID, ref.TypeID.String()) if err != nil { dao.log.Error("query execution failed", refAttr) - return DefRec{}, err + return proctypedef.DefRec{}, err } defer rows.Close() - dto, err := pgx.CollectExactlyOneRow(rows, pgx.RowToStructByName[defRecDS]) + dto, err := pgx.CollectExactlyOneRow(rows, pgx.RowToStructByName[proctypedef.DefRecDS]) if err != nil { dao.log.Error("row scanning failed", refAttr) - return DefRec{}, err + return proctypedef.DefRec{}, err } dao.log.Log(uow.Ctx, lf.LevelTrace, "entity selection succeed", refAttr) return DataToDefRec(dto) } -func (dao *daoPgx) GetRecByQN(uow db.UoW, typeQN uniqsym.ADT) (DefRec, error) { +func (dao *daoPgx) GetRecByQN(uow db.UoW, typeQN uniqsym.ADT) (proctypedef.DefRec, error) { qnAttr := slog.Any("typeQN", typeQN) rows, err := uow.Pgx.Query(uow.Ctx, selectRecByQN, uniqsym.ConvertToString(typeQN)) if err != nil { dao.log.Error("query execution failed", qnAttr) - return DefRec{}, err + return proctypedef.DefRec{}, err } defer rows.Close() - dto, err := pgx.CollectExactlyOneRow(rows, pgx.RowToStructByName[defRecDS]) + dto, err := pgx.CollectExactlyOneRow(rows, pgx.RowToStructByName[proctypedef.DefRecDS]) if err != nil { dao.log.Error("row scanning failed", qnAttr) - return DefRec{}, err + return proctypedef.DefRec{}, err } dao.log.Log(uow.Ctx, lf.LevelTrace, "entity selection succeed", qnAttr) return DataToDefRec(dto) } -func (dao *daoPgx) GetRecsByRefs(uow db.UoW, refs []typesem.SemRef) (_ []DefRec, err error) { +func (dao *daoPgx) GetRecsByRefs(uow db.UoW, refs []typesem.SemRef) (_ []proctypedef.DefRec, err error) { if len(refs) == 0 { - return []DefRec{}, nil + return []proctypedef.DefRec{}, nil } batch := pgx.Batch{} for _, ref := range refs { @@ -138,13 +140,13 @@ func (dao *daoPgx) GetRecsByRefs(uow db.UoW, refs []typesem.SemRef) (_ []DefRec, defer func() { err = errors.Join(err, br.Close()) }() - var dtos []defRecDS + var dtos []proctypedef.DefRecDS for _, defRef := range refs { rows, err := br.Query() if err != nil { dao.log.Error("query execution failed", slog.Any("defRef", defRef), slog.String("q", selectRecByID)) } - dto, err := pgx.CollectExactlyOneRow(rows, pgx.RowToStructByName[defRecDS]) + dto, err := pgx.CollectExactlyOneRow(rows, pgx.RowToStructByName[proctypedef.DefRecDS]) if err != nil { dao.log.Error("row scanning failed", slog.Any("defRef", defRef)) } @@ -157,21 +159,21 @@ func (dao *daoPgx) GetRecsByRefs(uow db.UoW, refs []typesem.SemRef) (_ []DefRec, return DataToDefRecs(dtos) } -func (dao *daoPgx) SelectEnv(uow db.UoW, typeQNs []uniqsym.ADT) (map[uniqsym.ADT]DefRec, error) { +func (dao *daoPgx) SelectEnv(uow db.UoW, typeQNs []uniqsym.ADT) (map[uniqsym.ADT]proctypedef.DefRec, error) { recs, err := dao.GetRecsByQNs(uow, typeQNs) if err != nil { return nil, err } - env := make(map[uniqsym.ADT]DefRec, len(recs)) + env := make(map[uniqsym.ADT]proctypedef.DefRec, len(recs)) for i, root := range recs { env[typeQNs[i]] = root } return env, nil } -func (dao *daoPgx) GetRecsByQNs(uow db.UoW, typeQNs []uniqsym.ADT) (_ []DefRec, err error) { +func (dao *daoPgx) GetRecsByQNs(uow db.UoW, typeQNs []uniqsym.ADT) (_ []proctypedef.DefRec, err error) { if len(typeQNs) == 0 { - return []DefRec{}, nil + return []proctypedef.DefRec{}, nil } batch := pgx.Batch{} for _, typeQN := range typeQNs { @@ -181,13 +183,13 @@ func (dao *daoPgx) GetRecsByQNs(uow db.UoW, typeQNs []uniqsym.ADT) (_ []DefRec, defer func() { err = errors.Join(err, br.Close()) }() - var dtos []defRecDS + var dtos []proctypedef.DefRecDS for _, typeQN := range typeQNs { rows, err := br.Query() if err != nil { dao.log.Error("query execution failed", slog.Any("typeQN", typeQN), slog.String("q", selectRecByQN)) } - dto, err := pgx.CollectExactlyOneRow(rows, pgx.RowToStructByName[defRecDS]) + dto, err := pgx.CollectExactlyOneRow(rows, pgx.RowToStructByName[proctypedef.DefRecDS]) if err != nil { dao.log.Error("row scanning failed", slog.Any("typeQN", typeQN)) } diff --git a/proc/typedef/iv_ozzo.go b/proc/typedef/adapter/iv_ozzo.go similarity index 93% rename from proc/typedef/iv_ozzo.go rename to proc/typedef/adapter/iv_ozzo.go index 0a9c036e..b2c2c27b 100644 --- a/proc/typedef/iv_ozzo.go +++ b/proc/typedef/adapter/iv_ozzo.go @@ -1,4 +1,4 @@ -package typedef +package adapter import ( validation "github.com/go-ozzo/ozzo-validation/v4" diff --git a/proc/typedef/me_echo.go b/proc/typedef/adapter/me_echo.go similarity index 94% rename from proc/typedef/me_echo.go rename to proc/typedef/adapter/me_echo.go index 72cd1d7f..b883644f 100644 --- a/proc/typedef/me_echo.go +++ b/proc/typedef/adapter/me_echo.go @@ -1,4 +1,4 @@ -package typedef +package adapter import ( "log/slog" @@ -13,15 +13,16 @@ import ( "orglang/go-engine/lib/lf" "orglang/go-engine/adt/typesem" + proctypedef "orglang/go-engine/proc/typedef/core" ) // Server-side primary adapter type controllerEcho struct { - api API + api proctypedef.API log *slog.Logger } -func newControllerEcho(a API, l *slog.Logger) *controllerEcho { +func newControllerEcho(a proctypedef.API, l *slog.Logger) *controllerEcho { name := slog.String("name", reflect.TypeFor[controllerEcho]().Name()) return &controllerEcho{a, l.With(name)} } diff --git a/proc/typedef/adapter/qb.go b/proc/typedef/adapter/qb.go new file mode 100644 index 00000000..f8cf9cd1 --- /dev/null +++ b/proc/typedef/adapter/qb.go @@ -0,0 +1,6 @@ +package adapter + +const ( + descBinds string = "proc_desc_binds " + typeDefs string = "proc_type_defs " +) diff --git a/proc/typedef/qb_sqlbuilder.go b/proc/typedef/adapter/qb_sqlbuilder.go similarity index 58% rename from proc/typedef/qb_sqlbuilder.go rename to proc/typedef/adapter/qb_sqlbuilder.go index 4e84f0db..9df1f388 100644 --- a/proc/typedef/qb_sqlbuilder.go +++ b/proc/typedef/adapter/qb_sqlbuilder.go @@ -1,7 +1,9 @@ -package typedef +package adapter import ( "github.com/huandu/go-sqlbuilder" + + proctypedef "orglang/go-engine/proc/typedef/core" ) type sqlBuilder struct { @@ -9,20 +11,20 @@ type sqlBuilder struct { } // for compilation purposes -func newQueryBuilder() queryBuilder { +func newQueryBuilder() proctypedef.QueryBuilder { return new(sqlBuilder) } func newSQLBuilder() *sqlBuilder { - defBuilder := sqlbuilder.NewStruct(new(defRecDS)).For(sqlbuilder.PostgreSQL) + defBuilder := sqlbuilder.NewStruct(new(proctypedef.DefRecDS)).For(sqlbuilder.PostgreSQL) return &sqlBuilder{defBuilder} } -func (qb *sqlBuilder) insertRec(rec defRecDS) (string, []any) { +func (qb *sqlBuilder) InsertRec(rec proctypedef.DefRecDS) (string, []any) { return qb.defBuilder.InsertInto(typeDefs, rec).Build() } -func (qb *sqlBuilder) selectRecByQN() string { +func (qb *sqlBuilder) SelectRecByQN() string { sb := qb.defBuilder.SelectFrom(typeDefs + "def") return sb.Join(descBinds+"bind", "bind.desc_id = def.type_id"). Where(sb.Equal("bind.desc_qn", sb.Var(1))). diff --git a/proc/typedef/adapter/qb_sqlbuilder_test.go b/proc/typedef/adapter/qb_sqlbuilder_test.go new file mode 100644 index 00000000..76b77390 --- /dev/null +++ b/proc/typedef/adapter/qb_sqlbuilder_test.go @@ -0,0 +1,37 @@ +package adapter + +import ( + "slices" + "testing" + + proctypedef "orglang/go-engine/proc/typedef/core" +) + +func TestInsertRec(t *testing.T) { + t.Parallel() + qb := newSQLBuilder() + gotSQL, gotArgs := qb.InsertRec(proctypedef.DefRecDS{ + TypeID: "type-id-1", + TypeRN: 7, + ExpVK: 42, + }) + wantSQL := "INSERT INTO proc_type_defs (type_id, type_rn, exp_vk) VALUES ($1, $2, $3)" + if gotSQL != wantSQL { + t.Errorf("got sql %q, want %q", gotSQL, wantSQL) + } + wantArgs := []any{"type-id-1", int64(7), int64(42)} + if !slices.Equal(gotArgs, wantArgs) { + t.Errorf("got args %v, want %v", gotArgs, wantArgs) + } +} + +func TestSelectRecByQN(t *testing.T) { + t.Parallel() + qb := newSQLBuilder() + got := qb.SelectRecByQN() + want := "SELECT def.type_id, def.type_rn, def.exp_vk FROM proc_type_defs def " + + "JOIN proc_desc_binds bind ON bind.desc_id = def.type_id WHERE bind.desc_qn = $1" + if got != want { + t.Errorf("got sql %q, want %q", got, want) + } +} diff --git a/proc/typedef/tc_goverter.go b/proc/typedef/adapter/tc_goverter.go similarity index 53% rename from proc/typedef/tc_goverter.go rename to proc/typedef/adapter/tc_goverter.go index 6980dd49..29037dd3 100644 --- a/proc/typedef/tc_goverter.go +++ b/proc/typedef/adapter/tc_goverter.go @@ -1,7 +1,9 @@ -package typedef +package adapter import ( "github.com/orglang/go-sdk/proc/typedef" + + proctypedef "orglang/go-engine/proc/typedef/core" ) // goverter:variables @@ -10,12 +12,12 @@ import ( // goverter:extend orglang/go-engine/adt/uniqsym:Convert.* // goverter:extend orglang/go-engine/proc/typeexp/adapter:Msg.* var ( - MsgFromDefSpec func(DefSpec) typedef.DefSpec - MsgToDefSpec func(typedef.DefSpec) (DefSpec, error) - MsgFromDefSnap func(DefSnap) typedef.DefSnap - MsgToDefSnap func(typedef.DefSnap) (DefSnap, error) - MsgFromDefSnaps func([]DefSnap) []typedef.DefSnap - MsgToDefSnaps func([]typedef.DefSnap) ([]DefSnap, error) + MsgFromDefSpec func(proctypedef.DefSpec) typedef.DefSpec + MsgToDefSpec func(typedef.DefSpec) (proctypedef.DefSpec, error) + MsgFromDefSnap func(proctypedef.DefSnap) typedef.DefSnap + MsgToDefSnap func(typedef.DefSnap) (proctypedef.DefSnap, error) + MsgFromDefSnaps func([]proctypedef.DefSnap) []typedef.DefSnap + MsgToDefSnaps func([]typedef.DefSnap) ([]proctypedef.DefSnap, error) ) // goverter:variables @@ -24,7 +26,7 @@ var ( // goverter:extend orglang/go-engine/adt/uniqsym:Convert.* // goverter:extend orglang/go-engine/proc/typeexp/adapter:Msg.* var ( - ViewFromDefSnap func(DefSnap) DefSnapVP + ViewFromDefSnap func(proctypedef.DefSnap) DefSnapVP ) // goverter:variables @@ -35,9 +37,9 @@ var ( // goverter:extend orglang/go-engine/proc/typeexp/adapter:Data.* var ( // goverter:map . TypeRef - DataToDefRec func(defRecDS) (DefRec, error) - DataToDefRecs func([]defRecDS) ([]DefRec, error) + DataToDefRec func(proctypedef.DefRecDS) (proctypedef.DefRec, error) + DataToDefRecs func([]proctypedef.DefRecDS) ([]proctypedef.DefRec, error) // goverter:autoMap TypeRef - DataFromDefRec func(DefRec) (defRecDS, error) - DataFromDefRecs func([]DefRec) ([]defRecDS, error) + DataFromDefRec func(proctypedef.DefRec) (proctypedef.DefRecDS, error) + DataFromDefRecs func([]proctypedef.DefRec) ([]proctypedef.DefRecDS, error) ) diff --git a/proc/typedef/te_stdlib.go b/proc/typedef/adapter/te_stdlib.go similarity index 96% rename from proc/typedef/te_stdlib.go rename to proc/typedef/adapter/te_stdlib.go index 7a282baa..9c0c4d98 100644 --- a/proc/typedef/te_stdlib.go +++ b/proc/typedef/adapter/te_stdlib.go @@ -1,4 +1,4 @@ -package typedef +package adapter import ( "embed" diff --git a/proc/typedef/vp.go b/proc/typedef/adapter/vp.go similarity index 93% rename from proc/typedef/vp.go rename to proc/typedef/adapter/vp.go index 87126fbc..64127547 100644 --- a/proc/typedef/vp.go +++ b/proc/typedef/adapter/vp.go @@ -1,4 +1,4 @@ -package typedef +package adapter import ( "github.com/orglang/go-sdk/adt/typesem" diff --git a/proc/typedef/vp/bs5/env.html b/proc/typedef/adapter/vp/bs5/env.html similarity index 100% rename from proc/typedef/vp/bs5/env.html rename to proc/typedef/adapter/vp/bs5/env.html diff --git a/proc/typedef/vp/bs5/role.html b/proc/typedef/adapter/vp/bs5/role.html similarity index 100% rename from proc/typedef/vp/bs5/role.html rename to proc/typedef/adapter/vp/bs5/role.html diff --git a/proc/typedef/vp/bs5/tp_dl.html b/proc/typedef/adapter/vp/bs5/tp_dl.html similarity index 100% rename from proc/typedef/vp/bs5/tp_dl.html rename to proc/typedef/adapter/vp/bs5/tp_dl.html diff --git a/proc/typedef/vp/bs5/vp_template.html b/proc/typedef/adapter/vp/bs5/vp_template.html similarity index 100% rename from proc/typedef/vp/bs5/vp_template.html rename to proc/typedef/adapter/vp/bs5/vp_template.html diff --git a/proc/typedef/vp_echo.go b/proc/typedef/adapter/vp_echo.go similarity index 91% rename from proc/typedef/vp_echo.go rename to proc/typedef/adapter/vp_echo.go index b5c5e6ad..d47e23ee 100644 --- a/proc/typedef/vp_echo.go +++ b/proc/typedef/adapter/vp_echo.go @@ -1,4 +1,4 @@ -package typedef +package adapter import ( "log/slog" @@ -14,17 +14,18 @@ import ( "orglang/go-engine/adt/typesem" "orglang/go-engine/adt/uniqsym" + proctypedef "orglang/go-engine/proc/typedef/core" typeexp "orglang/go-engine/proc/typeexp/core" ) // Adapter type echoPresenter struct { - api API + api proctypedef.API ssr te.Renderer log *slog.Logger } -func newEchoPresenter(a API, r te.Renderer, l *slog.Logger) *echoPresenter { +func newEchoPresenter(a proctypedef.API, r te.Renderer, l *slog.Logger) *echoPresenter { name := slog.String("name", reflect.TypeFor[echoPresenter]().Name()) return &echoPresenter{a, r, l.With(name)} } @@ -55,7 +56,7 @@ func (p *echoPresenter) PostOne(c echo.Context) error { p.log.Error("conversion failed", slog.Any("dto", dto)) return convErr } - snap, createErr := p.api.Create(DefSpec{TypeQN: qn, TypeExp: typeexp.OneSpec{}}) + snap, createErr := p.api.Create(proctypedef.DefSpec{TypeQN: qn, TypeExp: typeexp.OneSpec{}}) if createErr != nil { return createErr } diff --git a/proc/typedef/core.go b/proc/typedef/core/core.go similarity index 98% rename from proc/typedef/core.go rename to proc/typedef/core/core.go index 1c89d0f8..a5f49012 100644 --- a/proc/typedef/core.go +++ b/proc/typedef/core/core.go @@ -1,4 +1,4 @@ -package typedef +package core import ( "context" @@ -60,13 +60,13 @@ func newAPI() API { return new(service) } -func newService( +func NewService( typeDefRepo Repo, typeExpRepo typeexp.Repo, descSemRepo descsem.Repo, transactor db.Transactor, log *slog.Logger, -) *service { +) API { return &service{typeDefRepo, typeExpRepo, descSemRepo, transactor, log} } @@ -214,7 +214,7 @@ func errConcurrentModification(got seqnum.ADT, want seqnum.ADT) error { return fmt.Errorf("entity concurrent modification: want revision %v, got revision %v", want, got) } -func errOptimisticUpdate(got seqnum.ADT) error { +func ErrOptimisticUpdate(got seqnum.ADT) error { return fmt.Errorf("entity concurrent modification: got revision %v", got) } diff --git a/proc/typedef/ds.go b/proc/typedef/core/ds.go similarity index 94% rename from proc/typedef/ds.go rename to proc/typedef/core/ds.go index 1ed007e7..f0065707 100644 --- a/proc/typedef/ds.go +++ b/proc/typedef/core/ds.go @@ -1,4 +1,4 @@ -package typedef +package core import ( "orglang/go-engine/lib/db" @@ -18,7 +18,7 @@ type Repo interface { SelectEnv(db.UoW, []uniqsym.ADT) (map[uniqsym.ADT]DefRec, error) } -type defRecDS struct { +type DefRecDS struct { TypeID string `db:"type_id"` TypeRN int64 `db:"type_rn"` ExpVK int64 `db:"exp_vk"` diff --git a/proc/typedef/core/qb.go b/proc/typedef/core/qb.go new file mode 100644 index 00000000..02518411 --- /dev/null +++ b/proc/typedef/core/qb.go @@ -0,0 +1,6 @@ +package core + +type QueryBuilder interface { + InsertRec(DefRecDS) (string, []any) + SelectRecByQN() string +} diff --git a/proc/typedef/qb.go b/proc/typedef/qb.go deleted file mode 100644 index 53e3ca26..00000000 --- a/proc/typedef/qb.go +++ /dev/null @@ -1,11 +0,0 @@ -package typedef - -const ( - descBinds string = "proc_desc_binds " - typeDefs string = "proc_type_defs " -) - -type queryBuilder interface { - insertRec(defRecDS) (string, []any) - selectRecByQN() string -} diff --git a/proc/typedef/qb_sqlbuilder_test.go b/proc/typedef/qb_sqlbuilder_test.go deleted file mode 100644 index e10f9567..00000000 --- a/proc/typedef/qb_sqlbuilder_test.go +++ /dev/null @@ -1,15 +0,0 @@ -package typedef - -import "testing" - -func TestInsertRec(t *testing.T) { - qb := newSQLBuilder() - sql, _ := qb.insertRec(defRecDS{}) - t.Log(sql) -} - -func TestSelectRecByQN(t *testing.T) { - qb := newSQLBuilder() - sql := qb.selectRecByQN() - t.Log(sql) -} diff --git a/prog/core.go b/prog/core.go index 67746220..3dedbcd2 100644 --- a/prog/core.go +++ b/prog/core.go @@ -4,7 +4,7 @@ import ( "log/slog" pooltypedef "orglang/go-engine/pool/typedef/core" - proctypedef "orglang/go-engine/proc/typedef" + proctypedef "orglang/go-engine/proc/typedef/core" ) type API interface { diff --git a/prog/tc.go b/prog/tc.go index 3c09e05c..83b97238 100644 --- a/prog/tc.go +++ b/prog/tc.go @@ -8,7 +8,7 @@ import ( "github.com/orglang/go-sdk/prog" pooltypedef "orglang/go-engine/pool/typedef/adapter" - proctypedef "orglang/go-engine/proc/typedef" + proctypedef "orglang/go-engine/proc/typedef/adapter" ) func MsgToSpec(dto prog.Spec) (Spec, error) { diff --git a/test/arch/arch.go b/test/arch/arch.go index 411f8e10..0edcdd92 100644 --- a/test/arch/arch.go +++ b/test/arch/arch.go @@ -33,7 +33,15 @@ func (k Kind) String() string { } } -const modulePrefix = "orglang/go-engine/" +const ( + modulePrefix = "orglang/go-engine/" + sdkPrefix = "github.com/orglang/go-sdk" +) + +// isSDK reports whether pkgPath belongs to the wire-format SDK module. +func isSDK(pkgPath string) bool { + return pkgPath == sdkPrefix || strings.HasPrefix(pkgPath, sdkPrefix+"/") +} func Classify(pkgPath string) Kind { rest, ok := strings.CutPrefix(pkgPath, modulePrefix) @@ -66,6 +74,8 @@ func (v Violation) String() string { return fmt.Sprintf("%s imports %s", v.From, v.To) } +// Check reports agnostic core packages that depend on a toolkit-specific +// adapter or on the wire-format SDK. func Check(imports map[string][]string) []Violation { var violations []Violation for from, tos := range imports { @@ -73,7 +83,7 @@ func Check(imports map[string][]string) []Violation { continue } for _, to := range tos { - if Classify(to) == Specific { + if Classify(to) == Specific || isSDK(to) { violations = append(violations, Violation{From: from, To: to}) } } diff --git a/test/arch/check_test.go b/test/arch/check_test.go index 77187540..d7d4b0e4 100644 --- a/test/arch/check_test.go +++ b/test/arch/check_test.go @@ -52,6 +52,36 @@ func TestCheckIgnoresNonAgnosticSources(t *testing.T) { } } +func TestCheckRejectsCoreSDKImport(t *testing.T) { + imports := map[string][]string{ + "orglang/go-engine/proc/typedef/core": { + "github.com/orglang/go-sdk/proc/typedef", + }, + } + want := []Violation{{ + From: "orglang/go-engine/proc/typedef/core", + To: "github.com/orglang/go-sdk/proc/typedef", + }} + got := Check(imports) + if len(got) != len(want) { + t.Fatalf("got %d violations, want %d: %v", len(got), len(want), got) + } + if got[0] != want[0] { + t.Errorf("violation 0 = %v, want %v", got[0], want[0]) + } +} + +func TestCheckAllowsAdapterSDKImport(t *testing.T) { + imports := map[string][]string{ + "orglang/go-engine/proc/typedef/adapter": { + "github.com/orglang/go-sdk/proc/typedef", + }, + } + if got := Check(imports); len(got) != 0 { + t.Errorf("got %v, want no violations", got) + } +} + func TestCheckMessageNamesBothEdges(t *testing.T) { v := Violation{ From: "orglang/go-engine/pool/typedef/core", diff --git a/test/arch/cmd/main.go b/test/arch/cmd/main.go index 42e26922..b44a7d3d 100644 --- a/test/arch/cmd/main.go +++ b/test/arch/cmd/main.go @@ -21,6 +21,6 @@ func main() { for _, v := range violations { _, _ = fmt.Fprintf(os.Stderr, " %s\n", v) } - _, _ = fmt.Fprintln(os.Stderr, "an agnostic core must not import a toolkit-specific adapter") + _, _ = fmt.Fprintln(os.Stderr, "an agnostic core must not import a toolkit-specific adapter or the wire-format SDK") os.Exit(1) } From b4c560cbbf175adce175f192f5860022e97649cf Mon Sep 17 00:00:00 2001 From: Pavel Vetokhin Date: Sun, 11 Oct 2026 09:54:16 +0300 Subject: [PATCH 2/4] refactor: use plain aggregate names for core/adapter imports Import the engine core under the bare aggregate name (e.g. typedef, compstep, termexp) instead of a pool/proc-prefixed alias, and alias the wire-format SDK as sdk only when a same-named SDK package is also imported. Retain pool/proc prefixes only for genuine namesakes, and alias the shared kernel adt/compvar as adtcompvar where it collides with pool/compvar/core. Refs: orglang/go-workspace#6 --- pool/compstep/adapter/tc_goverter.go | 8 +- pool/compvar/adapter/di_fx.go | 6 +- pool/compvar/adapter/ds_pgx.go | 22 +- pool/compvar/adapter/qb_sqlbuilder.go | 10 +- pool/termdef/core.go | 8 +- pool/termexp/adapter/di_fx.go | 4 +- pool/termexp/adapter/ds_pgx.go | 4 +- pool/termexp/adapter/tc.go | 152 +++++----- pool/termexp/adapter/tc_goverter.go | 76 ++--- pool/typedef/adapter/di_fx.go | 8 +- pool/typedef/adapter/ds_pgx.go | 48 ++-- pool/typedef/adapter/me_echo.go | 6 +- pool/typedef/adapter/qb_sqlbuilder.go | 8 +- pool/typedef/adapter/qb_sqlbuilder_test.go | 4 +- pool/typedef/adapter/tc_goverter.go | 26 +- pool/typeexp/adapter/di_fx.go | 6 +- pool/typeexp/adapter/ds_pgx.go | 36 +-- pool/typeexp/adapter/qb_sqlbuilder.go | 8 +- pool/typeexp/adapter/qb_sqlbuilder_test.go | 6 +- pool/typeexp/adapter/tc.go | 226 +++++++-------- pool/typeexp/adapter/tc_goverter.go | 16 +- proc/commturn/adapter/di_fx.go | 4 +- proc/commturn/adapter/ds_pgx.go | 14 +- proc/commturn/adapter/tc.go | 38 +-- proc/commturn/adapter/tc_goverter.go | 6 +- proc/compstep/adapter/tc_goverter.go | 8 +- proc/termdef/adapter/di_fx.go | 4 +- proc/termdef/adapter/ds_pgx.go | 8 +- proc/termexp/adapter/di_fx.go | 4 +- proc/termexp/adapter/ds_pgx.go | 8 +- proc/termexp/adapter/tc.go | 316 ++++++++++----------- proc/termexp/adapter/tc_goverter.go | 10 +- proc/typedef/adapter/di_fx.go | 8 +- proc/typedef/adapter/ds_pgx.go | 50 ++-- proc/typedef/adapter/me_echo.go | 12 +- proc/typedef/adapter/qb_sqlbuilder.go | 8 +- proc/typedef/adapter/qb_sqlbuilder_test.go | 4 +- proc/typedef/adapter/tc_goverter.go | 26 +- proc/typedef/adapter/vp_echo.go | 8 +- proc/typeexp/adapter/di_fx.go | 6 +- proc/typeexp/adapter/ds_pgx.go | 30 +- proc/typeexp/adapter/qb_sqlbuilder.go | 8 +- proc/typeexp/adapter/qb_sqlbuilder_test.go | 6 +- proc/typeexp/adapter/tc.go | 294 +++++++++---------- proc/typeexp/adapter/tc_goverter.go | 16 +- 45 files changed, 792 insertions(+), 792 deletions(-) diff --git a/pool/compstep/adapter/tc_goverter.go b/pool/compstep/adapter/tc_goverter.go index 8268cf18..06233fed 100644 --- a/pool/compstep/adapter/tc_goverter.go +++ b/pool/compstep/adapter/tc_goverter.go @@ -1,9 +1,9 @@ package adapter import ( - "github.com/orglang/go-sdk/pool/compstep" + sdkcompstep "github.com/orglang/go-sdk/pool/compstep" - poolcompstep "orglang/go-engine/pool/compstep/core" + compstep "orglang/go-engine/pool/compstep/core" ) // goverter:variables @@ -11,6 +11,6 @@ import ( // goverter:extend orglang/go-engine/adt/compsem:Msg.* // goverter:extend orglang/go-engine/pool/termexp/adapter:Msg.* var ( - MsgToStepSpec func(compstep.StepSpec) (poolcompstep.StepSpec, error) - MsgFromStepSpec func(poolcompstep.StepSpec) compstep.StepSpec + MsgToStepSpec func(sdkcompstep.StepSpec) (compstep.StepSpec, error) + MsgFromStepSpec func(compstep.StepSpec) sdkcompstep.StepSpec ) diff --git a/pool/compvar/adapter/di_fx.go b/pool/compvar/adapter/di_fx.go index 875d87fc..1f3c5143 100644 --- a/pool/compvar/adapter/di_fx.go +++ b/pool/compvar/adapter/di_fx.go @@ -3,15 +3,15 @@ package adapter import ( "go.uber.org/fx" - poolcompvar "orglang/go-engine/pool/compvar/core" + compvar "orglang/go-engine/pool/compvar/core" ) var Module = fx.Module("pool/compvar", fx.Provide( - fx.Annotate(NewDaoPgx, fx.As(new(poolcompvar.Repo))), + fx.Annotate(NewDaoPgx, fx.As(new(compvar.Repo))), ), fx.Provide( fx.Private, - fx.Annotate(newSQLBuilder, fx.As(new(poolcompvar.QueryBuilder))), + fx.Annotate(newSQLBuilder, fx.As(new(compvar.QueryBuilder))), ), ) diff --git a/pool/compvar/adapter/ds_pgx.go b/pool/compvar/adapter/ds_pgx.go index d2220841..da33afeb 100644 --- a/pool/compvar/adapter/ds_pgx.go +++ b/pool/compvar/adapter/ds_pgx.go @@ -10,30 +10,30 @@ import ( "orglang/go-engine/lib/db" "orglang/go-engine/lib/lf" - "orglang/go-engine/adt/compvar" + adtcompvar "orglang/go-engine/adt/compvar" - poolcompvar "orglang/go-engine/pool/compvar/core" + compvar "orglang/go-engine/pool/compvar/core" ) type daoPgx struct { - qb poolcompvar.QueryBuilder + qb compvar.QueryBuilder log *slog.Logger } -func NewDaoPgx(qb poolcompvar.QueryBuilder, log *slog.Logger) poolcompvar.Repo { +func NewDaoPgx(qb compvar.QueryBuilder, log *slog.Logger) compvar.Repo { name := slog.String("name", reflect.TypeFor[daoPgx]().Name()) return &daoPgx{qb, log.With(name)} } // for compilation purposes -func newRepo() poolcompvar.Repo { +func newRepo() compvar.Repo { return new(daoPgx) } -func (dao *daoPgx) AddRecs(uow db.UoW, recs []compvar.VarRec) (err error) { +func (dao *daoPgx) AddRecs(uow db.UoW, recs []adtcompvar.VarRec) (err error) { batch := pgx.Batch{} for _, rec := range recs { - dto := compvar.DataFromVarRec(rec) + dto := adtcompvar.DataFromVarRec(rec) sql, args := dao.qb.InsertRec(getTableName(rec), dto) batch.Queue(sql, args...) } @@ -52,13 +52,13 @@ func (dao *daoPgx) AddRecs(uow db.UoW, recs []compvar.VarRec) (err error) { return nil } -func getTableName(rec compvar.VarRec) string { +func getTableName(rec adtcompvar.VarRec) string { switch rec.(type) { - case compvar.StructRec: + case adtcompvar.StructRec: return poolStructVars - case compvar.LinearRec: + case adtcompvar.LinearRec: return poolLinearVars default: - panic(compvar.ErrUnexpectedRecType(rec)) + panic(adtcompvar.ErrUnexpectedRecType(rec)) } } diff --git a/pool/compvar/adapter/qb_sqlbuilder.go b/pool/compvar/adapter/qb_sqlbuilder.go index 99ad8bc5..9bb7424c 100644 --- a/pool/compvar/adapter/qb_sqlbuilder.go +++ b/pool/compvar/adapter/qb_sqlbuilder.go @@ -3,9 +3,9 @@ package adapter import ( "github.com/huandu/go-sqlbuilder" - "orglang/go-engine/adt/compvar" + adtcompvar "orglang/go-engine/adt/compvar" - poolcompvar "orglang/go-engine/pool/compvar/core" + compvar "orglang/go-engine/pool/compvar/core" ) type sqlBuilder struct { @@ -13,15 +13,15 @@ type sqlBuilder struct { } // for compilation purposes -func newQueryBuilder() poolcompvar.QueryBuilder { +func newQueryBuilder() compvar.QueryBuilder { return new(sqlBuilder) } func newSQLBuilder() *sqlBuilder { - varBuilder := sqlbuilder.NewStruct(new(compvar.VarRecDS)).For(sqlbuilder.PostgreSQL) + varBuilder := sqlbuilder.NewStruct(new(adtcompvar.VarRecDS)).For(sqlbuilder.PostgreSQL) return &sqlBuilder{varBuilder} } -func (qb *sqlBuilder) InsertRec(table string, rec compvar.VarRecDS) (string, []any) { +func (qb *sqlBuilder) InsertRec(table string, rec adtcompvar.VarRecDS) (string, []any) { return qb.varBuilder.InsertInto(table, rec).Build() } diff --git a/pool/termdef/core.go b/pool/termdef/core.go index 10734b13..d9bc8397 100644 --- a/pool/termdef/core.go +++ b/pool/termdef/core.go @@ -10,7 +10,7 @@ import ( "orglang/go-engine/adt/termsem" "orglang/go-engine/adt/termvar" "orglang/go-engine/adt/uniqsym" - pooltypedef "orglang/go-engine/pool/typedef/core" + typedef "orglang/go-engine/pool/typedef/core" ) type API interface { @@ -40,7 +40,7 @@ type DefSnap struct { func newService( termDefRepo Repo, - typeDefRepo pooltypedef.Repo, + typeDefRepo typedef.Repo, descSemRepo descsem.Repo, transactor db.Transactor, log *slog.Logger, @@ -50,7 +50,7 @@ func newService( type service struct { termDefRepo Repo - typeDefRepo pooltypedef.Repo + typeDefRepo typedef.Repo descSemRepo descsem.Repo transactor db.Transactor log *slog.Logger @@ -64,7 +64,7 @@ func (s *service) Create(spec DefSpec) (_ termsem.SemRef, err error) { for _, varSpec := range spec.AssetVars { assetQNs = append(assetQNs, varSpec.TypeQN) } - var typeDefs map[uniqsym.ADT]pooltypedef.DefRec + var typeDefs map[uniqsym.ADT]typedef.DefRec getErr := s.transactor.ImplicitTx(ctx, func(uow db.UoW) error { typeDefs, err = s.typeDefRepo.GetRecsByQNs(uow, append(assetQNs, spec.LiabVar.TypeQN)) return err diff --git a/pool/termexp/adapter/di_fx.go b/pool/termexp/adapter/di_fx.go index e024db9d..5b95dc0a 100644 --- a/pool/termexp/adapter/di_fx.go +++ b/pool/termexp/adapter/di_fx.go @@ -3,11 +3,11 @@ package adapter import ( "go.uber.org/fx" - pooltermexp "orglang/go-engine/pool/termexp/core" + termexp "orglang/go-engine/pool/termexp/core" ) var Module = fx.Module("pool/termexp", fx.Provide( - fx.Annotate(NewDaoPgx, fx.As(new(pooltermexp.Repo))), + fx.Annotate(NewDaoPgx, fx.As(new(termexp.Repo))), ), ) diff --git a/pool/termexp/adapter/ds_pgx.go b/pool/termexp/adapter/ds_pgx.go index 2879229c..9b9bdb18 100644 --- a/pool/termexp/adapter/ds_pgx.go +++ b/pool/termexp/adapter/ds_pgx.go @@ -4,7 +4,7 @@ import ( "log/slog" "reflect" - pooltermexp "orglang/go-engine/pool/termexp/core" + termexp "orglang/go-engine/pool/termexp/core" ) // Adapter @@ -12,7 +12,7 @@ type daoPgx struct { log *slog.Logger } -func NewDaoPgx(l *slog.Logger) pooltermexp.Repo { +func NewDaoPgx(l *slog.Logger) termexp.Repo { name := slog.String("name", reflect.TypeFor[daoPgx]().Name()) return &daoPgx{l.With(name)} } diff --git a/pool/termexp/adapter/tc.go b/pool/termexp/adapter/tc.go index fa477604..e131117e 100644 --- a/pool/termexp/adapter/tc.go +++ b/pool/termexp/adapter/tc.go @@ -1,15 +1,15 @@ package adapter import ( - "github.com/orglang/go-sdk/pool/termexp" + sdktermexp "github.com/orglang/go-sdk/pool/termexp" "orglang/go-engine/adt/compsem" "orglang/go-engine/adt/termsem" - pooltermexp "orglang/go-engine/pool/termexp/core" + termexp "orglang/go-engine/pool/termexp/core" ) -func MsgFromExpSpecNilable(spec pooltermexp.ExpSpec) *termexp.ExpSpec { +func MsgFromExpSpecNilable(spec termexp.ExpSpec) *sdktermexp.ExpSpec { if spec == nil { return nil } @@ -17,55 +17,55 @@ func MsgFromExpSpecNilable(spec pooltermexp.ExpSpec) *termexp.ExpSpec { return &dto } -func MsgFromExpSpec(s pooltermexp.ExpSpec) termexp.ExpSpec { +func MsgFromExpSpec(s termexp.ExpSpec) sdktermexp.ExpSpec { switch spec := s.(type) { - case pooltermexp.HireSpec: - return termexp.ExpSpec{K: termexp.Hire, Hire: MsgFromHireSpec(spec)} - case pooltermexp.ApplySpec: - return termexp.ExpSpec{K: termexp.Apply, Apply: MsgFromApplySpec(spec)} - case pooltermexp.AcquireSpec: - return termexp.ExpSpec{K: termexp.Acquire, Acquire: MsgFromAcquireSpec(spec)} - case pooltermexp.AcceptSpec: - return termexp.ExpSpec{K: termexp.Accept, Accept: MsgFromAcceptSpec(spec)} - case pooltermexp.ReleaseSpec: - return termexp.ExpSpec{K: termexp.Release, Release: MsgFromReleaseSpec(spec)} - case pooltermexp.DetachSpec: - return termexp.ExpSpec{K: termexp.Detach, Detach: MsgFromDetachSpec(spec)} - case pooltermexp.SpawnSpec2: - return termexp.ExpSpec{ - K: termexp.Spawn, - Spawn: &termexp.SpawnSpec{ + case termexp.HireSpec: + return sdktermexp.ExpSpec{K: sdktermexp.Hire, Hire: MsgFromHireSpec(spec)} + case termexp.ApplySpec: + return sdktermexp.ExpSpec{K: sdktermexp.Apply, Apply: MsgFromApplySpec(spec)} + case termexp.AcquireSpec: + return sdktermexp.ExpSpec{K: sdktermexp.Acquire, Acquire: MsgFromAcquireSpec(spec)} + case termexp.AcceptSpec: + return sdktermexp.ExpSpec{K: sdktermexp.Accept, Accept: MsgFromAcceptSpec(spec)} + case termexp.ReleaseSpec: + return sdktermexp.ExpSpec{K: sdktermexp.Release, Release: MsgFromReleaseSpec(spec)} + case termexp.DetachSpec: + return sdktermexp.ExpSpec{K: sdktermexp.Detach, Detach: MsgFromDetachSpec(spec)} + case termexp.SpawnSpec2: + return sdktermexp.ExpSpec{ + K: sdktermexp.Spawn, + Spawn: &sdktermexp.SpawnSpec{ ProcTermRef: termsem.MsgFromRef(spec.ProcTermRef), ProcCompRefs: compsem.MsgFromRefs(spec.ProcCompRefs), }, } default: - panic(pooltermexp.ErrSpecTypeUnexpected(s)) + panic(termexp.ErrSpecTypeUnexpected(s)) } } -func MsgToExpSpecNilable(dto *termexp.ExpSpec) (pooltermexp.ExpSpec, error) { +func MsgToExpSpecNilable(dto *sdktermexp.ExpSpec) (termexp.ExpSpec, error) { if dto == nil { return nil, nil } return MsgToExpSpec(*dto) } -func MsgToExpSpec(dto termexp.ExpSpec) (pooltermexp.ExpSpec, error) { +func MsgToExpSpec(dto sdktermexp.ExpSpec) (termexp.ExpSpec, error) { switch dto.K { - case termexp.Acquire: + case sdktermexp.Acquire: return MsgToAcquireSpec(dto.Acquire) - case termexp.Accept: + case sdktermexp.Accept: return MsgToAcceptSpec(dto.Accept) - case termexp.Hire: + case sdktermexp.Hire: return MsgToHireSpec(dto.Hire) - case termexp.Apply: + case sdktermexp.Apply: return MsgToApplySpec(dto.Apply) - case termexp.Release: + case sdktermexp.Release: return MsgToReleaseSpec(dto.Release) - case termexp.Detach: + case sdktermexp.Detach: return MsgToDetachSpec(dto.Detach) - case termexp.Spawn: + case sdktermexp.Spawn: termRef, err := termsem.MsgToRef(dto.Spawn.ProcTermRef) if err != nil { return nil, err @@ -74,84 +74,84 @@ func MsgToExpSpec(dto termexp.ExpSpec) (pooltermexp.ExpSpec, error) { if err != nil { return nil, err } - return pooltermexp.SpawnSpec2{ProcTermRef: termRef, ProcCompRefs: compRefs}, nil + return termexp.SpawnSpec2{ProcTermRef: termRef, ProcCompRefs: compRefs}, nil default: - panic(termexp.ErrUnexpectedExpKind(dto.K)) + panic(sdktermexp.ErrUnexpectedExpKind(dto.K)) } } -func DataFromExpSpec(s pooltermexp.ExpSpec) pooltermexp.ExpSpecDS { +func DataFromExpSpec(s termexp.ExpSpec) termexp.ExpSpecDS { switch spec := s.(type) { - case pooltermexp.AcquireSpec: - return pooltermexp.ExpSpecDS{K: pooltermexp.AcquireKind, Acquire: DataFromAcquireSpec(spec)} - case pooltermexp.AcceptSpec: - return pooltermexp.ExpSpecDS{K: pooltermexp.AcceptKind, Accept: DataFromAcceptSpec(spec)} - case pooltermexp.HireSpec: - return pooltermexp.ExpSpecDS{K: pooltermexp.HireKind, Hire: DataFromHireSpec(spec)} - case pooltermexp.ApplySpec: - return pooltermexp.ExpSpecDS{K: pooltermexp.ApplyKind, Hire: DataFromApplySpec(spec)} - case pooltermexp.ReleaseSpec: - return pooltermexp.ExpSpecDS{K: pooltermexp.ReleaseKind, Release: DataFromReleaseSpec(spec)} - case pooltermexp.DetachSpec: - return pooltermexp.ExpSpecDS{K: pooltermexp.DetachKind, Detach: DataFromDetachSpec(spec)} + case termexp.AcquireSpec: + return termexp.ExpSpecDS{K: termexp.AcquireKind, Acquire: DataFromAcquireSpec(spec)} + case termexp.AcceptSpec: + return termexp.ExpSpecDS{K: termexp.AcceptKind, Accept: DataFromAcceptSpec(spec)} + case termexp.HireSpec: + return termexp.ExpSpecDS{K: termexp.HireKind, Hire: DataFromHireSpec(spec)} + case termexp.ApplySpec: + return termexp.ExpSpecDS{K: termexp.ApplyKind, Hire: DataFromApplySpec(spec)} + case termexp.ReleaseSpec: + return termexp.ExpSpecDS{K: termexp.ReleaseKind, Release: DataFromReleaseSpec(spec)} + case termexp.DetachSpec: + return termexp.ExpSpecDS{K: termexp.DetachKind, Detach: DataFromDetachSpec(spec)} default: - panic(pooltermexp.ErrSpecTypeUnexpected(s)) + panic(termexp.ErrSpecTypeUnexpected(s)) } } -func DataToExpSpec(dto pooltermexp.ExpSpecDS) (pooltermexp.ExpSpec, error) { +func DataToExpSpec(dto termexp.ExpSpecDS) (termexp.ExpSpec, error) { switch dto.K { - case pooltermexp.AcquireKind: + case termexp.AcquireKind: return DataToAcquireSpec(dto.Acquire) - case pooltermexp.AcceptKind: + case termexp.AcceptKind: return DataToAcceptSpec(dto.Accept) - case pooltermexp.HireKind: + case termexp.HireKind: return DataToHireSpec(dto.Hire) - case pooltermexp.ApplyKind: + case termexp.ApplyKind: return DataToApplySpec(dto.Apply) - case pooltermexp.ReleaseKind: + case termexp.ReleaseKind: return DataToReleaseSpec(dto.Release) - case pooltermexp.DetachKind: + case termexp.DetachKind: return DataToDetachSpec(dto.Detach) default: - panic(pooltermexp.ErrExpKindUnexpected(dto.K)) + panic(termexp.ErrExpKindUnexpected(dto.K)) } } -func DataFromExpRec(r pooltermexp.ExpRec) pooltermexp.ExpRecDS { +func DataFromExpRec(r termexp.ExpRec) termexp.ExpRecDS { switch rec := r.(type) { - case pooltermexp.AcquireRec: - return pooltermexp.ExpRecDS{K: pooltermexp.AcquireKind, Acquire: DataFromAcquireRec(rec)} - case pooltermexp.AcceptRec: - return pooltermexp.ExpRecDS{K: pooltermexp.AcceptKind, Accept: DataFromAcceptRec(rec)} - case pooltermexp.HireRec: - return pooltermexp.ExpRecDS{K: pooltermexp.HireKind, Hire: DataFromHireRec(rec)} - case pooltermexp.ApplyRec: - return pooltermexp.ExpRecDS{K: pooltermexp.ApplyKind, Apply: DataFromApplyRec(rec)} - case pooltermexp.ReleaseRec: - return pooltermexp.ExpRecDS{K: pooltermexp.ReleaseKind, Release: DataFromReleaseRec(rec)} - case pooltermexp.DetachRec: - return pooltermexp.ExpRecDS{K: pooltermexp.DetachKind, Detach: DataFromDetachRec(rec)} + case termexp.AcquireRec: + return termexp.ExpRecDS{K: termexp.AcquireKind, Acquire: DataFromAcquireRec(rec)} + case termexp.AcceptRec: + return termexp.ExpRecDS{K: termexp.AcceptKind, Accept: DataFromAcceptRec(rec)} + case termexp.HireRec: + return termexp.ExpRecDS{K: termexp.HireKind, Hire: DataFromHireRec(rec)} + case termexp.ApplyRec: + return termexp.ExpRecDS{K: termexp.ApplyKind, Apply: DataFromApplyRec(rec)} + case termexp.ReleaseRec: + return termexp.ExpRecDS{K: termexp.ReleaseKind, Release: DataFromReleaseRec(rec)} + case termexp.DetachRec: + return termexp.ExpRecDS{K: termexp.DetachKind, Detach: DataFromDetachRec(rec)} default: - panic(pooltermexp.ErrRecTypeUnexpected(r)) + panic(termexp.ErrRecTypeUnexpected(r)) } } -func DataToExpRec(dto pooltermexp.ExpRecDS) (pooltermexp.ExpRec, error) { +func DataToExpRec(dto termexp.ExpRecDS) (termexp.ExpRec, error) { switch dto.K { - case pooltermexp.AcquireKind: + case termexp.AcquireKind: return DataToAcquireRec(dto.Acquire) - case pooltermexp.AcceptKind: + case termexp.AcceptKind: return DataToAcceptRec(dto.Accept) - case pooltermexp.HireKind: + case termexp.HireKind: return DataToHireRec(dto.Hire) - case pooltermexp.ApplyKind: + case termexp.ApplyKind: return DataToApplyRec(dto.Apply) - case pooltermexp.ReleaseKind: + case termexp.ReleaseKind: return DataToReleaseRec(dto.Release) - case pooltermexp.DetachKind: + case termexp.DetachKind: return DataToDetachRec(dto.Detach) default: - panic(pooltermexp.ErrExpKindUnexpected(dto.K)) + panic(termexp.ErrExpKindUnexpected(dto.K)) } } diff --git a/pool/termexp/adapter/tc_goverter.go b/pool/termexp/adapter/tc_goverter.go index 76adc75d..d0c82454 100644 --- a/pool/termexp/adapter/tc_goverter.go +++ b/pool/termexp/adapter/tc_goverter.go @@ -1,9 +1,9 @@ package adapter import ( - "github.com/orglang/go-sdk/pool/termexp" + sdktermexp "github.com/orglang/go-sdk/pool/termexp" - pooltermexp "orglang/go-engine/pool/termexp/core" + termexp "orglang/go-engine/pool/termexp/core" ) // goverter:variables @@ -14,19 +14,19 @@ import ( // goverter:extend MsgFromExpSpec // goverter:extend MsgToExpSpec var ( - MsgFromAcquireSpec func(pooltermexp.AcquireSpec) *termexp.AcquireSpec - MsgFromAcceptSpec func(pooltermexp.AcceptSpec) *termexp.AcceptSpec - MsgFromHireSpec func(pooltermexp.HireSpec) *termexp.HireSpec - MsgFromApplySpec func(pooltermexp.ApplySpec) *termexp.ApplySpec - MsgFromReleaseSpec func(pooltermexp.ReleaseSpec) *termexp.ReleaseSpec - MsgFromDetachSpec func(pooltermexp.DetachSpec) *termexp.DetachSpec + MsgFromAcquireSpec func(termexp.AcquireSpec) *sdktermexp.AcquireSpec + MsgFromAcceptSpec func(termexp.AcceptSpec) *sdktermexp.AcceptSpec + MsgFromHireSpec func(termexp.HireSpec) *sdktermexp.HireSpec + MsgFromApplySpec func(termexp.ApplySpec) *sdktermexp.ApplySpec + MsgFromReleaseSpec func(termexp.ReleaseSpec) *sdktermexp.ReleaseSpec + MsgFromDetachSpec func(termexp.DetachSpec) *sdktermexp.DetachSpec - MsgToAcquireSpec func(*termexp.AcquireSpec) (pooltermexp.AcquireSpec, error) - MsgToAcceptSpec func(*termexp.AcceptSpec) (pooltermexp.AcceptSpec, error) - MsgToHireSpec func(*termexp.HireSpec) (pooltermexp.HireSpec, error) - MsgToApplySpec func(*termexp.ApplySpec) (pooltermexp.ApplySpec, error) - MsgToReleaseSpec func(*termexp.ReleaseSpec) (pooltermexp.ReleaseSpec, error) - MsgToDetachSpec func(*termexp.DetachSpec) (pooltermexp.DetachSpec, error) + MsgToAcquireSpec func(*sdktermexp.AcquireSpec) (termexp.AcquireSpec, error) + MsgToAcceptSpec func(*sdktermexp.AcceptSpec) (termexp.AcceptSpec, error) + MsgToHireSpec func(*sdktermexp.HireSpec) (termexp.HireSpec, error) + MsgToApplySpec func(*sdktermexp.ApplySpec) (termexp.ApplySpec, error) + MsgToReleaseSpec func(*sdktermexp.ReleaseSpec) (termexp.ReleaseSpec, error) + MsgToDetachSpec func(*sdktermexp.DetachSpec) (termexp.DetachSpec, error) ) // goverter:variables @@ -37,31 +37,31 @@ var ( // goverter:extend DataFromExpSpec // goverter:extend DataToExpSpec var ( - DataFromAcquireSpec func(pooltermexp.AcquireSpec) *pooltermexp.GrantSpecDS - DataFromAcceptSpec func(pooltermexp.AcceptSpec) *pooltermexp.GrantSpecDS - DataFromHireSpec func(pooltermexp.HireSpec) *pooltermexp.CoopSpecDS - DataFromApplySpec func(pooltermexp.ApplySpec) *pooltermexp.CoopSpecDS - DataFromReleaseSpec func(pooltermexp.ReleaseSpec) *pooltermexp.RevokeSpecDS - DataFromDetachSpec func(pooltermexp.DetachSpec) *pooltermexp.RevokeSpecDS + DataFromAcquireSpec func(termexp.AcquireSpec) *termexp.GrantSpecDS + DataFromAcceptSpec func(termexp.AcceptSpec) *termexp.GrantSpecDS + DataFromHireSpec func(termexp.HireSpec) *termexp.CoopSpecDS + DataFromApplySpec func(termexp.ApplySpec) *termexp.CoopSpecDS + DataFromReleaseSpec func(termexp.ReleaseSpec) *termexp.RevokeSpecDS + DataFromDetachSpec func(termexp.DetachSpec) *termexp.RevokeSpecDS - DataToAcquireSpec func(*pooltermexp.GrantSpecDS) (pooltermexp.AcquireSpec, error) - DataToAcceptSpec func(*pooltermexp.GrantSpecDS) (pooltermexp.AcceptSpec, error) - DataToHireSpec func(*pooltermexp.CoopSpecDS) (pooltermexp.HireSpec, error) - DataToApplySpec func(*pooltermexp.CoopSpecDS) (pooltermexp.ApplySpec, error) - DataToReleaseSpec func(*pooltermexp.RevokeSpecDS) (pooltermexp.ReleaseSpec, error) - DataToDetachSpec func(*pooltermexp.RevokeSpecDS) (pooltermexp.DetachSpec, error) + DataToAcquireSpec func(*termexp.GrantSpecDS) (termexp.AcquireSpec, error) + DataToAcceptSpec func(*termexp.GrantSpecDS) (termexp.AcceptSpec, error) + DataToHireSpec func(*termexp.CoopSpecDS) (termexp.HireSpec, error) + DataToApplySpec func(*termexp.CoopSpecDS) (termexp.ApplySpec, error) + DataToReleaseSpec func(*termexp.RevokeSpecDS) (termexp.ReleaseSpec, error) + DataToDetachSpec func(*termexp.RevokeSpecDS) (termexp.DetachSpec, error) - DataFromAcquireRec func(pooltermexp.AcquireRec) *pooltermexp.GrantRecDS - DataFromAcceptRec func(pooltermexp.AcceptRec) *pooltermexp.GrantRecDS - DataFromHireRec func(pooltermexp.HireRec) *pooltermexp.CoopRecDS - DataFromApplyRec func(pooltermexp.ApplyRec) *pooltermexp.CoopRecDS - DataFromReleaseRec func(pooltermexp.ReleaseRec) *pooltermexp.RevokeRecDS - DataFromDetachRec func(pooltermexp.DetachRec) *pooltermexp.RevokeRecDS + DataFromAcquireRec func(termexp.AcquireRec) *termexp.GrantRecDS + DataFromAcceptRec func(termexp.AcceptRec) *termexp.GrantRecDS + DataFromHireRec func(termexp.HireRec) *termexp.CoopRecDS + DataFromApplyRec func(termexp.ApplyRec) *termexp.CoopRecDS + DataFromReleaseRec func(termexp.ReleaseRec) *termexp.RevokeRecDS + DataFromDetachRec func(termexp.DetachRec) *termexp.RevokeRecDS - DataToAcquireRec func(*pooltermexp.GrantRecDS) (pooltermexp.AcquireRec, error) - DataToAcceptRec func(*pooltermexp.GrantRecDS) (pooltermexp.AcceptRec, error) - DataToHireRec func(*pooltermexp.CoopRecDS) (pooltermexp.HireRec, error) - DataToApplyRec func(*pooltermexp.CoopRecDS) (pooltermexp.ApplyRec, error) - DataToReleaseRec func(*pooltermexp.RevokeRecDS) (pooltermexp.ReleaseRec, error) - DataToDetachRec func(*pooltermexp.RevokeRecDS) (pooltermexp.DetachRec, error) + DataToAcquireRec func(*termexp.GrantRecDS) (termexp.AcquireRec, error) + DataToAcceptRec func(*termexp.GrantRecDS) (termexp.AcceptRec, error) + DataToHireRec func(*termexp.CoopRecDS) (termexp.HireRec, error) + DataToApplyRec func(*termexp.CoopRecDS) (termexp.ApplyRec, error) + DataToReleaseRec func(*termexp.RevokeRecDS) (termexp.ReleaseRec, error) + DataToDetachRec func(*termexp.RevokeRecDS) (termexp.DetachRec, error) ) diff --git a/pool/typedef/adapter/di_fx.go b/pool/typedef/adapter/di_fx.go index 36315a4b..fa1edf30 100644 --- a/pool/typedef/adapter/di_fx.go +++ b/pool/typedef/adapter/di_fx.go @@ -5,18 +5,18 @@ import ( "orglang/go-engine/adt/descsem" - pooltypedef "orglang/go-engine/pool/typedef/core" + typedef "orglang/go-engine/pool/typedef/core" ) var Module = fx.Module("pool/typedef", fx.Provide( - fx.Annotate(pooltypedef.NewService, fx.As(new(pooltypedef.API))), - fx.Annotate(NewDaoPgx, fx.As(new(pooltypedef.Repo))), + fx.Annotate(typedef.NewService, fx.As(new(typedef.API))), + fx.Annotate(NewDaoPgx, fx.As(new(typedef.Repo))), ), fx.Provide( fx.Private, newControllerEcho, - fx.Annotate(newSQLBuilder, fx.As(new(pooltypedef.QueryBuilder))), + fx.Annotate(newSQLBuilder, fx.As(new(typedef.QueryBuilder))), fx.Annotate(descsem.NewDaoPgx(descBinds), fx.As(new(descsem.Repo))), ), fx.Invoke( diff --git a/pool/typedef/adapter/ds_pgx.go b/pool/typedef/adapter/ds_pgx.go index 0cff8ace..5bc6b9fa 100644 --- a/pool/typedef/adapter/ds_pgx.go +++ b/pool/typedef/adapter/ds_pgx.go @@ -14,25 +14,25 @@ import ( "orglang/go-engine/adt/typesem" "orglang/go-engine/adt/uniqsym" - pooltypedef "orglang/go-engine/pool/typedef/core" + typedef "orglang/go-engine/pool/typedef/core" ) type daoPgx struct { - qb pooltypedef.QueryBuilder + qb typedef.QueryBuilder log *slog.Logger } -func NewDaoPgx(qb pooltypedef.QueryBuilder, log *slog.Logger) pooltypedef.Repo { +func NewDaoPgx(qb typedef.QueryBuilder, log *slog.Logger) typedef.Repo { name := slog.String("name", reflect.TypeFor[daoPgx]().Name()) return &daoPgx{qb, log.With(name)} } // for compilation purposes -func newRepo() pooltypedef.Repo { +func newRepo() typedef.Repo { return new(daoPgx) } -func (dao *daoPgx) AddRec(uow db.UoW, rec pooltypedef.DefRec) error { +func (dao *daoPgx) AddRec(uow db.UoW, rec typedef.DefRec) error { refAttr := slog.Any("ref", rec.TypeRef) dao.log.Log(uow.Ctx, lf.LevelTrace, "addition started", refAttr) dto, convErr := DataFromDefRec(rec) @@ -50,7 +50,7 @@ func (dao *daoPgx) AddRec(uow db.UoW, rec pooltypedef.DefRec) error { return nil } -func (dao *daoPgx) Update(uow db.UoW, rec pooltypedef.DefRec) error { +func (dao *daoPgx) Update(uow db.UoW, rec typedef.DefRec) error { refAttr := slog.Any("ref", rec.TypeRef) dao.log.Log(uow.Ctx, lf.LevelTrace, "update started", refAttr) dto, convErr := DataFromDefRec(rec) @@ -87,43 +87,43 @@ func (dao *daoPgx) SelectRefs(uow db.UoW) ([]typesem.SemRef, error) { return typesem.DataToRefs(dtos) } -func (dao *daoPgx) SelectRecByRef(uow db.UoW, ref typesem.SemRef) (pooltypedef.DefRec, error) { +func (dao *daoPgx) SelectRecByRef(uow db.UoW, ref typesem.SemRef) (typedef.DefRec, error) { refAttr := slog.Any("defRef", ref) rows, err := uow.Pgx.Query(uow.Ctx, selectRecByID, ref.TypeID.String()) if err != nil { dao.log.Error("query execution failed", refAttr, slog.String("q", selectRecByID)) - return pooltypedef.DefRec{}, err + return typedef.DefRec{}, err } defer rows.Close() - dto, err := pgx.CollectExactlyOneRow(rows, pgx.RowToStructByName[pooltypedef.DefRecDS]) + dto, err := pgx.CollectExactlyOneRow(rows, pgx.RowToStructByName[typedef.DefRecDS]) if err != nil { dao.log.Error("row scanning failed", refAttr) - return pooltypedef.DefRec{}, err + return typedef.DefRec{}, err } dao.log.Log(uow.Ctx, lf.LevelTrace, "getting succeed", refAttr) return DataToDefRec(dto) } -func (dao *daoPgx) SelectRecByQN(uow db.UoW, xactQN uniqsym.ADT) (pooltypedef.DefRec, error) { +func (dao *daoPgx) SelectRecByQN(uow db.UoW, xactQN uniqsym.ADT) (typedef.DefRec, error) { qnAttr := slog.Any("xactQN", xactQN) rows, err := uow.Pgx.Query(uow.Ctx, selectRecByQN, uniqsym.ConvertToString(xactQN)) if err != nil { dao.log.Error("query execution failed", qnAttr, slog.String("q", selectRecByQN)) - return pooltypedef.DefRec{}, err + return typedef.DefRec{}, err } defer rows.Close() - dto, err := pgx.CollectExactlyOneRow(rows, pgx.RowToStructByName[pooltypedef.DefRecDS]) + dto, err := pgx.CollectExactlyOneRow(rows, pgx.RowToStructByName[typedef.DefRecDS]) if err != nil { dao.log.Error("row scanning failed", qnAttr) - return pooltypedef.DefRec{}, err + return typedef.DefRec{}, err } dao.log.Log(uow.Ctx, lf.LevelTrace, "getting succeed", qnAttr) return DataToDefRec(dto) } -func (dao *daoPgx) SelectRecsByRefs(uow db.UoW, refs []typesem.SemRef) (_ []pooltypedef.DefRec, err error) { +func (dao *daoPgx) SelectRecsByRefs(uow db.UoW, refs []typesem.SemRef) (_ []typedef.DefRec, err error) { if len(refs) == 0 { - return []pooltypedef.DefRec{}, nil + return []typedef.DefRec{}, nil } batch := pgx.Batch{} for _, ref := range refs { @@ -136,13 +136,13 @@ func (dao *daoPgx) SelectRecsByRefs(uow db.UoW, refs []typesem.SemRef) (_ []pool defer func() { err = errors.Join(err, br.Close()) }() - var dtos []pooltypedef.DefRecDS + var dtos []typedef.DefRecDS for _, defRef := range refs { rows, err := br.Query() if err != nil { dao.log.Error("query execution failed", slog.Any("defRef", defRef), slog.String("q", selectRecByID)) } - dto, err := pgx.CollectExactlyOneRow(rows, pgx.RowToStructByName[pooltypedef.DefRecDS]) + dto, err := pgx.CollectExactlyOneRow(rows, pgx.RowToStructByName[typedef.DefRecDS]) if err != nil { dao.log.Error("row scanning failed", slog.Any("defRef", defRef)) } @@ -155,9 +155,9 @@ func (dao *daoPgx) SelectRecsByRefs(uow db.UoW, refs []typesem.SemRef) (_ []pool return DataToDefRecs(dtos) } -func (dao *daoPgx) GetRecsByQNs(uow db.UoW, typeQNs []uniqsym.ADT) (_ map[uniqsym.ADT]pooltypedef.DefRec, err error) { +func (dao *daoPgx) GetRecsByQNs(uow db.UoW, typeQNs []uniqsym.ADT) (_ map[uniqsym.ADT]typedef.DefRec, err error) { if len(typeQNs) == 0 { - return map[uniqsym.ADT]pooltypedef.DefRec{}, nil + return map[uniqsym.ADT]typedef.DefRec{}, nil } batch := pgx.Batch{} sql := dao.qb.SelectRecByQN() @@ -168,18 +168,18 @@ func (dao *daoPgx) GetRecsByQNs(uow db.UoW, typeQNs []uniqsym.ADT) (_ map[uniqsy defer func() { err = errors.Join(err, br.Close()) }() - dtos := make(map[uniqsym.ADT]pooltypedef.DefRecDS, len(typeQNs)) + dtos := make(map[uniqsym.ADT]typedef.DefRecDS, len(typeQNs)) for _, typeQN := range typeQNs { qnAttr := slog.Any("qn", typeQN) rows, readErr := br.Query() if readErr != nil { dao.log.Error("query execution failed", qnAttr, slog.Any("sql", sql)) - return map[uniqsym.ADT]pooltypedef.DefRec{}, readErr + return map[uniqsym.ADT]typedef.DefRec{}, readErr } - dto, scanErr := pgx.CollectExactlyOneRow(rows, pgx.RowToStructByName[pooltypedef.DefRecDS]) + dto, scanErr := pgx.CollectExactlyOneRow(rows, pgx.RowToStructByName[typedef.DefRecDS]) if scanErr != nil { dao.log.Error("row scanning failed", qnAttr) - return map[uniqsym.ADT]pooltypedef.DefRec{}, scanErr + return map[uniqsym.ADT]typedef.DefRec{}, scanErr } dtos[typeQN] = dto } diff --git a/pool/typedef/adapter/me_echo.go b/pool/typedef/adapter/me_echo.go index 1208623b..63320872 100644 --- a/pool/typedef/adapter/me_echo.go +++ b/pool/typedef/adapter/me_echo.go @@ -13,16 +13,16 @@ import ( "orglang/go-engine/adt/typesem" - pooltypedef "orglang/go-engine/pool/typedef/core" + typedef "orglang/go-engine/pool/typedef/core" ) // Server-side primary adapter type controllerEcho struct { - api pooltypedef.API + api typedef.API log *slog.Logger } -func newControllerEcho(a pooltypedef.API, l *slog.Logger) *controllerEcho { +func newControllerEcho(a typedef.API, l *slog.Logger) *controllerEcho { name := slog.String("name", reflect.TypeFor[controllerEcho]().Name()) return &controllerEcho{a, l.With(name)} } diff --git a/pool/typedef/adapter/qb_sqlbuilder.go b/pool/typedef/adapter/qb_sqlbuilder.go index 73a970fa..fdddf1d8 100644 --- a/pool/typedef/adapter/qb_sqlbuilder.go +++ b/pool/typedef/adapter/qb_sqlbuilder.go @@ -3,7 +3,7 @@ package adapter import ( "github.com/huandu/go-sqlbuilder" - pooltypedef "orglang/go-engine/pool/typedef/core" + typedef "orglang/go-engine/pool/typedef/core" ) type sqlBuilder struct { @@ -11,16 +11,16 @@ type sqlBuilder struct { } // for compilation purposes -func newQueryBuilder() pooltypedef.QueryBuilder { +func newQueryBuilder() typedef.QueryBuilder { return new(sqlBuilder) } func newSQLBuilder() *sqlBuilder { - defBuilder := sqlbuilder.NewStruct(new(pooltypedef.DefRecDS)).For(sqlbuilder.PostgreSQL) + defBuilder := sqlbuilder.NewStruct(new(typedef.DefRecDS)).For(sqlbuilder.PostgreSQL) return &sqlBuilder{defBuilder} } -func (qb *sqlBuilder) InsertRec(rec pooltypedef.DefRecDS) (string, []any) { +func (qb *sqlBuilder) InsertRec(rec typedef.DefRecDS) (string, []any) { return qb.defBuilder.InsertInto(typeDefs, rec).Build() } diff --git a/pool/typedef/adapter/qb_sqlbuilder_test.go b/pool/typedef/adapter/qb_sqlbuilder_test.go index a03bb6b3..c798f00c 100644 --- a/pool/typedef/adapter/qb_sqlbuilder_test.go +++ b/pool/typedef/adapter/qb_sqlbuilder_test.go @@ -4,13 +4,13 @@ import ( "slices" "testing" - pooltypedef "orglang/go-engine/pool/typedef/core" + typedef "orglang/go-engine/pool/typedef/core" ) func TestInsertRec(t *testing.T) { t.Parallel() qb := newSQLBuilder() - gotSQL, gotArgs := qb.InsertRec(pooltypedef.DefRecDS{ + gotSQL, gotArgs := qb.InsertRec(typedef.DefRecDS{ TypeID: "type-id-1", TypeRN: 7, ExpVK: 42, diff --git a/pool/typedef/adapter/tc_goverter.go b/pool/typedef/adapter/tc_goverter.go index d56ba16b..88f89e46 100644 --- a/pool/typedef/adapter/tc_goverter.go +++ b/pool/typedef/adapter/tc_goverter.go @@ -3,9 +3,9 @@ package adapter import ( "orglang/go-engine/adt/uniqsym" - "github.com/orglang/go-sdk/pool/typedef" + sdktypedef "github.com/orglang/go-sdk/pool/typedef" - pooltypedef "orglang/go-engine/pool/typedef/core" + typedef "orglang/go-engine/pool/typedef/core" ) // goverter:variables @@ -14,12 +14,12 @@ import ( // goverter:extend orglang/go-engine/adt/uniqsym:Convert.* // goverter:extend orglang/go-engine/pool/typeexp/adapter:Msg.* var ( - MsgFromDefSpec func(pooltypedef.DefSpec) typedef.DefSpec - MsgToDefSpec func(typedef.DefSpec) (pooltypedef.DefSpec, error) - MsgFromDefSnap func(pooltypedef.DefSnap) typedef.DefSnap - MsgToDefSnap func(typedef.DefSnap) (pooltypedef.DefSnap, error) - MsgFromDefSnaps func([]pooltypedef.DefSnap) []typedef.DefSnap - MsgToDefSnaps func([]typedef.DefSnap) ([]pooltypedef.DefSnap, error) + MsgFromDefSpec func(typedef.DefSpec) sdktypedef.DefSpec + MsgToDefSpec func(sdktypedef.DefSpec) (typedef.DefSpec, error) + MsgFromDefSnap func(typedef.DefSnap) sdktypedef.DefSnap + MsgToDefSnap func(sdktypedef.DefSnap) (typedef.DefSnap, error) + MsgFromDefSnaps func([]typedef.DefSnap) []sdktypedef.DefSnap + MsgToDefSnaps func([]sdktypedef.DefSnap) ([]typedef.DefSnap, error) ) // goverter:variables @@ -30,10 +30,10 @@ var ( // goverter:extend orglang/go-engine/adt/valkey:Convert.* var ( // goverter:map . TypeRef - DataToDefRec func(pooltypedef.DefRecDS) (pooltypedef.DefRec, error) - DataToDefRecs func([]pooltypedef.DefRecDS) ([]pooltypedef.DefRec, error) - DataToDefRecMap func(map[uniqsym.ADT]pooltypedef.DefRecDS) (map[uniqsym.ADT]pooltypedef.DefRec, error) + DataToDefRec func(typedef.DefRecDS) (typedef.DefRec, error) + DataToDefRecs func([]typedef.DefRecDS) ([]typedef.DefRec, error) + DataToDefRecMap func(map[uniqsym.ADT]typedef.DefRecDS) (map[uniqsym.ADT]typedef.DefRec, error) // goverter:autoMap TypeRef - DataFromDefRec func(pooltypedef.DefRec) (pooltypedef.DefRecDS, error) - DataFromDefRecs func([]pooltypedef.DefRec) ([]pooltypedef.DefRecDS, error) + DataFromDefRec func(typedef.DefRec) (typedef.DefRecDS, error) + DataFromDefRecs func([]typedef.DefRec) ([]typedef.DefRecDS, error) ) diff --git a/pool/typeexp/adapter/di_fx.go b/pool/typeexp/adapter/di_fx.go index bff18fc5..62b446dc 100644 --- a/pool/typeexp/adapter/di_fx.go +++ b/pool/typeexp/adapter/di_fx.go @@ -3,15 +3,15 @@ package adapter import ( "go.uber.org/fx" - pooltypeexp "orglang/go-engine/pool/typeexp/core" + typeexp "orglang/go-engine/pool/typeexp/core" ) var Module = fx.Module("pool/typeexp", fx.Provide( - fx.Annotate(NewDaoPgx, fx.As(new(pooltypeexp.Repo))), + fx.Annotate(NewDaoPgx, fx.As(new(typeexp.Repo))), ), fx.Provide( fx.Private, - fx.Annotate(newSQLBuilder, fx.As(new(pooltypeexp.QueryBuilder))), + fx.Annotate(newSQLBuilder, fx.As(new(typeexp.QueryBuilder))), ), ) diff --git a/pool/typeexp/adapter/ds_pgx.go b/pool/typeexp/adapter/ds_pgx.go index ca6001e8..bb708ab7 100644 --- a/pool/typeexp/adapter/ds_pgx.go +++ b/pool/typeexp/adapter/ds_pgx.go @@ -14,26 +14,26 @@ import ( "orglang/go-engine/adt/typesem" "orglang/go-engine/adt/valkey" - pooltypeexp "orglang/go-engine/pool/typeexp/core" + typeexp "orglang/go-engine/pool/typeexp/core" ) // Adapter type daoPgx struct { - qb pooltypeexp.QueryBuilder + qb typeexp.QueryBuilder log *slog.Logger } -func NewDaoPgx(qb pooltypeexp.QueryBuilder, log *slog.Logger) pooltypeexp.Repo { +func NewDaoPgx(qb typeexp.QueryBuilder, log *slog.Logger) typeexp.Repo { name := slog.String("name", reflect.TypeFor[daoPgx]().Name()) return &daoPgx{qb, log.With(name)} } // for compilation purposes -func newRepo() pooltypeexp.Repo { +func newRepo() typeexp.Repo { return new(daoPgx) } -func (dao *daoPgx) AddRec(uow db.UoW, rec pooltypeexp.ExpRec, ref typesem.SemRef) (err error) { +func (dao *daoPgx) AddRec(uow db.UoW, rec typeexp.ExpRec, ref typesem.SemRef) (err error) { vkAttr := slog.Any("vk", rec.Key()) dto := dataFromExpRec(rec) batch := pgx.Batch{} @@ -55,7 +55,7 @@ func (dao *daoPgx) AddRec(uow db.UoW, rec pooltypeexp.ExpRec, ref typesem.SemRef return nil } -func (dao *daoPgx) GetRecByVK(uow db.UoW, expVK valkey.ADT) (pooltypeexp.ExpRec, error) { +func (dao *daoPgx) GetRecByVK(uow db.UoW, expVK valkey.ADT) (typeexp.ExpRec, error) { vkAttr := slog.Any("vk", expVK) sql := dao.qb.SelectRecByVK() rows, err := uow.Pgx.Query(uow.Ctx, sql, valkey.ConvertToInt(expVK)) @@ -64,7 +64,7 @@ func (dao *daoPgx) GetRecByVK(uow db.UoW, expVK valkey.ADT) (pooltypeexp.ExpRec, return nil, err } defer rows.Close() - dtos, err := pgx.CollectRows(rows, pgx.RowToStructByName[pooltypeexp.StateDS]) + dtos, err := pgx.CollectRows(rows, pgx.RowToStructByName[typeexp.StateDS]) if err != nil { dao.log.Error("rows scanning failed", vkAttr) return nil, err @@ -74,14 +74,14 @@ func (dao *daoPgx) GetRecByVK(uow db.UoW, expVK valkey.ADT) (pooltypeexp.ExpRec, return nil, errors.New("no rows selected") } dao.log.Log(uow.Ctx, lf.LevelTrace, "selection succeed", slog.Any("dtos", dtos)) - states := make(map[int64]pooltypeexp.StateDS, len(dtos)) + states := make(map[int64]typeexp.StateDS, len(dtos)) for _, dto := range dtos { states[dto.ExpVK] = dto } return statesToExpRec(states, states[valkey.ConvertToInt(expVK)]) } -func (dao *daoPgx) GetRecsByVKs(uow db.UoW, expVKs []valkey.ADT) (_ []pooltypeexp.ExpRec, err error) { +func (dao *daoPgx) GetRecsByVKs(uow db.UoW, expVKs []valkey.ADT) (_ []typeexp.ExpRec, err error) { batch := pgx.Batch{} sql := dao.qb.SelectRecByVK() for _, expVK := range expVKs { @@ -91,7 +91,7 @@ func (dao *daoPgx) GetRecsByVKs(uow db.UoW, expVKs []valkey.ADT) (_ []pooltypeex defer func() { err = errors.Join(err, br.Close()) }() - recs := make([]pooltypeexp.ExpRec, 0, len(expVKs)) + recs := make([]typeexp.ExpRec, 0, len(expVKs)) for _, expVK := range expVKs { vkAttr := slog.Any("vk", expVK) rows, readErr := br.Query() @@ -99,16 +99,16 @@ func (dao *daoPgx) GetRecsByVKs(uow db.UoW, expVKs []valkey.ADT) (_ []pooltypeex dao.log.Error("query execution failed", vkAttr, slog.String("sql", sql)) return nil, readErr } - dtos, scanErr := pgx.CollectRows(rows, pgx.RowToStructByName[pooltypeexp.StateDS]) + dtos, scanErr := pgx.CollectRows(rows, pgx.RowToStructByName[typeexp.StateDS]) if scanErr != nil { dao.log.Error("rows scanning failed", vkAttr) return nil, scanErr } if len(dtos) == 0 { dao.log.Error("selection failed", vkAttr) - return nil, pooltypeexp.ErrDoesNotExist(expVK) + return nil, typeexp.ErrDoesNotExist(expVK) } - rec, convErr := dataToExpRec(pooltypeexp.ExpRecDS{ExpVK: valkey.ConvertToInt(expVK), States: dtos}) + rec, convErr := dataToExpRec(typeexp.ExpRecDS{ExpVK: valkey.ConvertToInt(expVK), States: dtos}) if convErr != nil { dao.log.Error("model conversion failed", vkAttr) return nil, convErr @@ -119,7 +119,7 @@ func (dao *daoPgx) GetRecsByVKs(uow db.UoW, expVKs []valkey.ADT) (_ []pooltypeex return recs, err } -func (dao *daoPgx) GetRecMap(uow db.UoW, expVKs map[symbol.ADT]valkey.ADT) (_ map[symbol.ADT]pooltypeexp.ExpRec, err error) { +func (dao *daoPgx) GetRecMap(uow db.UoW, expVKs map[symbol.ADT]valkey.ADT) (_ map[symbol.ADT]typeexp.ExpRec, err error) { batch := pgx.Batch{} sql := dao.qb.SelectRecByVK() for _, expVK := range expVKs { @@ -129,7 +129,7 @@ func (dao *daoPgx) GetRecMap(uow db.UoW, expVKs map[symbol.ADT]valkey.ADT) (_ ma defer func() { err = errors.Join(err, br.Close()) }() - recs := make(map[symbol.ADT]pooltypeexp.ExpRec, len(expVKs)) + recs := make(map[symbol.ADT]typeexp.ExpRec, len(expVKs)) for expPH, expVK := range expVKs { vkAttr := slog.Any("vk", expVK) rows, readErr := br.Query() @@ -137,7 +137,7 @@ func (dao *daoPgx) GetRecMap(uow db.UoW, expVKs map[symbol.ADT]valkey.ADT) (_ ma dao.log.Error("query execution failed", vkAttr, slog.String("sql", sql)) return nil, readErr } - dtos, scanErr := pgx.CollectRows(rows, pgx.RowToStructByName[pooltypeexp.StateDS]) + dtos, scanErr := pgx.CollectRows(rows, pgx.RowToStructByName[typeexp.StateDS]) if scanErr != nil { dao.log.Error("rows scanning failed", vkAttr) return nil, scanErr @@ -145,9 +145,9 @@ func (dao *daoPgx) GetRecMap(uow db.UoW, expVKs map[symbol.ADT]valkey.ADT) (_ ma dao.log.Log(uow.Ctx, lf.LevelTrace, "selection succeed", slog.Any("dtos", dtos)) if len(dtos) == 0 { dao.log.Error("selection failed", vkAttr) - return nil, pooltypeexp.ErrDoesNotExist(expVK) + return nil, typeexp.ErrDoesNotExist(expVK) } - rec, convErr := dataToExpRec(pooltypeexp.ExpRecDS{ExpVK: valkey.ConvertToInt(expVK), States: dtos}) + rec, convErr := dataToExpRec(typeexp.ExpRecDS{ExpVK: valkey.ConvertToInt(expVK), States: dtos}) if convErr != nil { dao.log.Error("model conversion failed", vkAttr) return nil, convErr diff --git a/pool/typeexp/adapter/qb_sqlbuilder.go b/pool/typeexp/adapter/qb_sqlbuilder.go index 8e90e489..b4809bc3 100644 --- a/pool/typeexp/adapter/qb_sqlbuilder.go +++ b/pool/typeexp/adapter/qb_sqlbuilder.go @@ -3,7 +3,7 @@ package adapter import ( "github.com/huandu/go-sqlbuilder" - pooltypeexp "orglang/go-engine/pool/typeexp/core" + typeexp "orglang/go-engine/pool/typeexp/core" ) type sqlBuilder struct { @@ -11,16 +11,16 @@ type sqlBuilder struct { } // for compilation purposes -func newQueryBuilder() pooltypeexp.QueryBuilder { +func newQueryBuilder() typeexp.QueryBuilder { return new(sqlBuilder) } func newSQLBuilder() *sqlBuilder { - stateBuilder := sqlbuilder.NewStruct(new(pooltypeexp.StateDS)).For(sqlbuilder.PostgreSQL) + stateBuilder := sqlbuilder.NewStruct(new(typeexp.StateDS)).For(sqlbuilder.PostgreSQL) return &sqlBuilder{stateBuilder} } -func (qb *sqlBuilder) InsertRec(rec pooltypeexp.StateDS) (string, []any) { +func (qb *sqlBuilder) InsertRec(rec typeexp.StateDS) (string, []any) { return qb.stateBuilder.InsertInto(xactExps, rec). SQL("ON CONFLICT (exp_vk) DO NOTHING"). Build() diff --git a/pool/typeexp/adapter/qb_sqlbuilder_test.go b/pool/typeexp/adapter/qb_sqlbuilder_test.go index f08a81e4..3b12bb44 100644 --- a/pool/typeexp/adapter/qb_sqlbuilder_test.go +++ b/pool/typeexp/adapter/qb_sqlbuilder_test.go @@ -4,19 +4,19 @@ import ( "slices" "testing" - pooltypeexp "orglang/go-engine/pool/typeexp/core" + typeexp "orglang/go-engine/pool/typeexp/core" ) func TestInsertRec(t *testing.T) { t.Parallel() qb := newSQLBuilder() - gotSQL, gotArgs := qb.InsertRec(pooltypeexp.StateDS{}) + gotSQL, gotArgs := qb.InsertRec(typeexp.StateDS{}) wantSQL := "INSERT INTO pool_type_exps (exp_vk, sup_exp_vk, kind, spec) " + "VALUES ($1, $2, $3, $4) ON CONFLICT (exp_vk) DO NOTHING" if gotSQL != wantSQL { t.Errorf("got sql %q, want %q", gotSQL, wantSQL) } - wantArgs := []any{int64(0), int64(0), pooltypeexp.ExpKind(0), pooltypeexp.ExpSpecDS{}} + wantArgs := []any{int64(0), int64(0), typeexp.ExpKind(0), typeexp.ExpSpecDS{}} if !slices.Equal(gotArgs, wantArgs) { t.Errorf("got args %v, want %v", gotArgs, wantArgs) } diff --git a/pool/typeexp/adapter/tc.go b/pool/typeexp/adapter/tc.go index 1e244e55..a1f34f5f 100644 --- a/pool/typeexp/adapter/tc.go +++ b/pool/typeexp/adapter/tc.go @@ -6,49 +6,49 @@ import ( "orglang/go-engine/adt/uniqsym" "orglang/go-engine/adt/valkey" - "github.com/orglang/go-sdk/pool/typeexp" + sdktypeexp "github.com/orglang/go-sdk/pool/typeexp" - pooltypeexp "orglang/go-engine/pool/typeexp/core" + typeexp "orglang/go-engine/pool/typeexp/core" ) -func MsgFromExpSpec(s pooltypeexp.ExpSpec) typeexp.ExpSpec { +func MsgFromExpSpec(s typeexp.ExpSpec) sdktypeexp.ExpSpec { switch spec := s.(type) { - case pooltypeexp.OneSpec: - return typeexp.ExpSpec{K: typeexp.One} - case pooltypeexp.LinkSpec: - return typeexp.ExpSpec{ - K: typeexp.Link, - Link: &typeexp.LinkSpec{TypeQN: uniqsym.ConvertToString(spec.TypeQN)}} - case pooltypeexp.WithSpec: - return typeexp.ExpSpec{ - K: typeexp.With, - With: &typeexp.LaborSpec{ + case typeexp.OneSpec: + return sdktypeexp.ExpSpec{K: sdktypeexp.One} + case typeexp.LinkSpec: + return sdktypeexp.ExpSpec{ + K: sdktypeexp.Link, + Link: &sdktypeexp.LinkSpec{TypeQN: uniqsym.ConvertToString(spec.TypeQN)}} + case typeexp.WithSpec: + return sdktypeexp.ExpSpec{ + K: sdktypeexp.With, + With: &sdktypeexp.LaborSpec{ ProcQNs: uniqsym.ConvertToStrings(spec.ProcQNs), ContExp: MsgFromExpSpec(spec.ContExp)}, } - case pooltypeexp.PlusSpec: - return typeexp.ExpSpec{ - K: typeexp.Plus, - Plus: &typeexp.LaborSpec{ + case typeexp.PlusSpec: + return sdktypeexp.ExpSpec{ + K: sdktypeexp.Plus, + Plus: &sdktypeexp.LaborSpec{ ProcQNs: uniqsym.ConvertToStrings(spec.ProcQNs), ContExp: MsgFromExpSpec(spec.ContExp)}, } default: - panic(pooltypeexp.ErrSpecTypeUnexpected(s)) + panic(typeexp.ErrSpecTypeUnexpected(s)) } } -func MsgToExpSpec(dto typeexp.ExpSpec) (pooltypeexp.ExpSpec, error) { +func MsgToExpSpec(dto sdktypeexp.ExpSpec) (typeexp.ExpSpec, error) { switch dto.K { - case typeexp.One: - return pooltypeexp.OneSpec{}, nil - case typeexp.Link: + case sdktypeexp.One: + return typeexp.OneSpec{}, nil + case sdktypeexp.Link: xactQN, err := uniqsym.ConvertFromString(dto.Link.TypeQN) if err != nil { return nil, err } - return pooltypeexp.LinkSpec{TypeQN: xactQN}, nil - case typeexp.Plus: + return typeexp.LinkSpec{TypeQN: xactQN}, nil + case sdktypeexp.Plus: procQNs, err := uniqsym.ConvertFromStrings(dto.Plus.ProcQNs) if err != nil { return nil, err @@ -57,8 +57,8 @@ func MsgToExpSpec(dto typeexp.ExpSpec) (pooltypeexp.ExpSpec, error) { if err != nil { return nil, err } - return pooltypeexp.PlusSpec{ProcQNs: procQNs, ContExp: contExp}, nil - case typeexp.With: + return typeexp.PlusSpec{ProcQNs: procQNs, ContExp: contExp}, nil + case sdktypeexp.With: procQNs, err := uniqsym.ConvertFromStrings(dto.With.ProcQNs) if err != nil { return nil, err @@ -67,110 +67,110 @@ func MsgToExpSpec(dto typeexp.ExpSpec) (pooltypeexp.ExpSpec, error) { if err != nil { return nil, err } - return pooltypeexp.WithSpec{ProcQNs: procQNs, ContExp: contExp}, nil - case typeexp.Up: + return typeexp.WithSpec{ProcQNs: procQNs, ContExp: contExp}, nil + case sdktypeexp.Up: contExp, err := MsgToExpSpec(dto.Up.ContExp) if err != nil { return nil, err } - return pooltypeexp.UpSpec{ContExp: contExp}, nil - case typeexp.Down: + return typeexp.UpSpec{ContExp: contExp}, nil + case sdktypeexp.Down: contExp, err := MsgToExpSpec(dto.Down.ContExp) if err != nil { return nil, err } - return pooltypeexp.DownSpec{ContExp: contExp}, nil + return typeexp.DownSpec{ContExp: contExp}, nil default: - panic(typeexp.ErrKindUnexpected(dto.K)) + panic(sdktypeexp.ErrKindUnexpected(dto.K)) } } -func msgFromExpRef(ref pooltypeexp.ExpRef) typeexp.ExpRef { +func msgFromExpRef(ref typeexp.ExpRef) sdktypeexp.ExpRef { expVK := valkey.ConvertToInt(ref.Key()) switch ref.(type) { - case pooltypeexp.OneRef, pooltypeexp.OneRec: - return typeexp.ExpRef{K: typeexp.One, ExpVK: expVK} - case pooltypeexp.LinkRef, pooltypeexp.LinkRec: - return typeexp.ExpRef{K: typeexp.Link, ExpVK: expVK} - case pooltypeexp.PlusRef, pooltypeexp.PlusRec: - return typeexp.ExpRef{K: typeexp.Plus, ExpVK: expVK} - case pooltypeexp.WithRef, pooltypeexp.WithRec: - return typeexp.ExpRef{K: typeexp.With, ExpVK: expVK} + case typeexp.OneRef, typeexp.OneRec: + return sdktypeexp.ExpRef{K: sdktypeexp.One, ExpVK: expVK} + case typeexp.LinkRef, typeexp.LinkRec: + return sdktypeexp.ExpRef{K: sdktypeexp.Link, ExpVK: expVK} + case typeexp.PlusRef, typeexp.PlusRec: + return sdktypeexp.ExpRef{K: sdktypeexp.Plus, ExpVK: expVK} + case typeexp.WithRef, typeexp.WithRec: + return sdktypeexp.ExpRef{K: sdktypeexp.With, ExpVK: expVK} default: - panic(pooltypeexp.ErrRefTypeUnexpected(ref)) + panic(typeexp.ErrRefTypeUnexpected(ref)) } } -func msgToExpRef(dto typeexp.ExpRef) (pooltypeexp.ExpRef, error) { +func msgToExpRef(dto sdktypeexp.ExpRef) (typeexp.ExpRef, error) { expVK, err := valkey.ConvertFromInt(dto.ExpVK) if err != nil { return nil, err } switch dto.K { - case typeexp.One: - return pooltypeexp.OneRef{ExpVK: expVK}, nil - case typeexp.Link: - return pooltypeexp.LinkRef{ExpVK: expVK}, nil - case typeexp.Plus: - return pooltypeexp.PlusRef{ExpVK: expVK}, nil - case typeexp.With: - return pooltypeexp.WithRef{ExpVK: expVK}, nil + case sdktypeexp.One: + return typeexp.OneRef{ExpVK: expVK}, nil + case sdktypeexp.Link: + return typeexp.LinkRef{ExpVK: expVK}, nil + case sdktypeexp.Plus: + return typeexp.PlusRef{ExpVK: expVK}, nil + case sdktypeexp.With: + return typeexp.WithRef{ExpVK: expVK}, nil default: - panic(typeexp.ErrKindUnexpected(dto.K)) + panic(sdktypeexp.ErrKindUnexpected(dto.K)) } } -func dataFromExpRef(ref pooltypeexp.ExpRef) pooltypeexp.ExpRefDS { +func dataFromExpRef(ref typeexp.ExpRef) typeexp.ExpRefDS { if ref == nil { panic("can't be nil") } expVK := valkey.ConvertToInt(ref.Key()) switch ref.(type) { - case pooltypeexp.OneRef, pooltypeexp.OneRec: - return pooltypeexp.ExpRefDS{K: pooltypeexp.OneKind, ExpVK: expVK} - case pooltypeexp.LinkRef, pooltypeexp.LinkRec: - return pooltypeexp.ExpRefDS{K: pooltypeexp.LinkKind, ExpVK: expVK} - case pooltypeexp.PlusRef, pooltypeexp.PlusRec: - return pooltypeexp.ExpRefDS{K: pooltypeexp.PlusKind, ExpVK: expVK} - case pooltypeexp.WithRef, pooltypeexp.WithRec: - return pooltypeexp.ExpRefDS{K: pooltypeexp.WithKind, ExpVK: expVK} + case typeexp.OneRef, typeexp.OneRec: + return typeexp.ExpRefDS{K: typeexp.OneKind, ExpVK: expVK} + case typeexp.LinkRef, typeexp.LinkRec: + return typeexp.ExpRefDS{K: typeexp.LinkKind, ExpVK: expVK} + case typeexp.PlusRef, typeexp.PlusRec: + return typeexp.ExpRefDS{K: typeexp.PlusKind, ExpVK: expVK} + case typeexp.WithRef, typeexp.WithRec: + return typeexp.ExpRefDS{K: typeexp.WithKind, ExpVK: expVK} default: - panic(pooltypeexp.ErrRefTypeUnexpected(ref)) + panic(typeexp.ErrRefTypeUnexpected(ref)) } } -func dataToExpRef(dto pooltypeexp.ExpRefDS) (pooltypeexp.ExpRef, error) { +func dataToExpRef(dto typeexp.ExpRefDS) (typeexp.ExpRef, error) { expVK, err := valkey.ConvertFromInt(dto.ExpVK) if err != nil { return nil, err } switch dto.K { - case pooltypeexp.OneKind: - return pooltypeexp.OneRef{ExpVK: expVK}, nil - case pooltypeexp.LinkKind: - return pooltypeexp.LinkRef{ExpVK: expVK}, nil - case pooltypeexp.PlusKind: - return pooltypeexp.PlusRef{ExpVK: expVK}, nil - case pooltypeexp.WithKind: - return pooltypeexp.WithRef{ExpVK: expVK}, nil + case typeexp.OneKind: + return typeexp.OneRef{ExpVK: expVK}, nil + case typeexp.LinkKind: + return typeexp.LinkRef{ExpVK: expVK}, nil + case typeexp.PlusKind: + return typeexp.PlusRef{ExpVK: expVK}, nil + case typeexp.WithKind: + return typeexp.WithRef{ExpVK: expVK}, nil default: panic(errExpKindUnexpected(dto.K)) } } -func dataToExpRec(dto pooltypeexp.ExpRecDS) (pooltypeexp.ExpRec, error) { - states := make(map[int64]pooltypeexp.StateDS, len(dto.States)) +func dataToExpRec(dto typeexp.ExpRecDS) (typeexp.ExpRec, error) { + states := make(map[int64]typeexp.StateDS, len(dto.States)) for _, dto := range dto.States { states[dto.ExpVK] = dto } return statesToExpRec(states, states[dto.ExpVK]) } -func dataFromExpRec(rec pooltypeexp.ExpRec) pooltypeexp.ExpRecDS { +func dataFromExpRec(rec typeexp.ExpRec) typeexp.ExpRecDS { if rec == nil { panic("can't be nil") } - dto := &pooltypeexp.ExpRecDS{ + dto := &typeexp.ExpRecDS{ ExpVK: valkey.ConvertToInt(rec.Key()), States: nil, } @@ -178,21 +178,21 @@ func dataFromExpRec(rec pooltypeexp.ExpRec) pooltypeexp.ExpRecDS { return *dto } -func statesToExpRec(states map[int64]pooltypeexp.StateDS, st pooltypeexp.StateDS) (pooltypeexp.ExpRec, error) { +func statesToExpRec(states map[int64]typeexp.StateDS, st typeexp.StateDS) (typeexp.ExpRec, error) { expVK, err := valkey.ConvertFromInt(st.ExpVK) if err != nil { return nil, err } switch st.K { - case pooltypeexp.OneKind: - return pooltypeexp.OneRec{ExpVK: expVK}, nil - case pooltypeexp.LinkKind: + case typeexp.OneKind: + return typeexp.OneRec{ExpVK: expVK}, nil + case typeexp.LinkKind: xactQN, err := uniqsym.ConvertFromString(st.Spec.Link) if err != nil { return nil, err } - return pooltypeexp.LinkRec{ExpVK: expVK, TypeQN: xactQN}, nil - case pooltypeexp.PlusKind: + return typeexp.LinkRec{ExpVK: expVK, TypeQN: xactQN}, nil + case typeexp.PlusKind: procQNs, err := uniqsym.ConvertFromStrings(st.Spec.Plus.ProcQNs) if err != nil { return nil, err @@ -201,8 +201,8 @@ func statesToExpRec(states map[int64]pooltypeexp.StateDS, st pooltypeexp.StateDS if err != nil { return nil, err } - return pooltypeexp.PlusRec{ExpVK: expVK, ProcQNs: procQNs, ContExp: contExp}, nil - case pooltypeexp.WithKind: + return typeexp.PlusRec{ExpVK: expVK, ProcQNs: procQNs, ContExp: contExp}, nil + case typeexp.WithKind: procQNs, err := uniqsym.ConvertFromStrings(st.Spec.With.ProcQNs) if err != nil { return nil, err @@ -211,93 +211,93 @@ func statesToExpRec(states map[int64]pooltypeexp.StateDS, st pooltypeexp.StateDS if err != nil { return nil, err } - return pooltypeexp.WithRec{ExpVK: expVK, ProcQNs: procQNs, ContExp: contExp}, nil - case pooltypeexp.UpKind: + return typeexp.WithRec{ExpVK: expVK, ProcQNs: procQNs, ContExp: contExp}, nil + case typeexp.UpKind: contExp, err := statesToExpRec(states, states[st.Spec.Up.ContExpVK]) if err != nil { return nil, err } - return pooltypeexp.UpRec{ExpVK: expVK, ContExp: contExp}, nil - case pooltypeexp.DownKind: + return typeexp.UpRec{ExpVK: expVK, ContExp: contExp}, nil + case typeexp.DownKind: contExp, err := statesToExpRec(states, states[st.Spec.Down.ContExpVK]) if err != nil { return nil, err } - return pooltypeexp.DownRec{ExpVK: expVK, ContExp: contExp}, nil + return typeexp.DownRec{ExpVK: expVK, ContExp: contExp}, nil default: panic(errExpKindUnexpected(st.K)) } } -func statesFromExpRec(supExpVK int64, r pooltypeexp.ExpRec, dto *pooltypeexp.ExpRecDS) int64 { +func statesFromExpRec(supExpVK int64, r typeexp.ExpRec, dto *typeexp.ExpRecDS) int64 { expVK := valkey.ConvertToInt(r.Key()) switch rec := r.(type) { - case pooltypeexp.OneRec: - st := pooltypeexp.StateDS{ExpVK: expVK, K: pooltypeexp.OneKind, SupExpVK: supExpVK} + case typeexp.OneRec: + st := typeexp.StateDS{ExpVK: expVK, K: typeexp.OneKind, SupExpVK: supExpVK} dto.States = append(dto.States, st) return expVK - case pooltypeexp.LinkRec: - st := pooltypeexp.StateDS{ + case typeexp.LinkRec: + st := typeexp.StateDS{ ExpVK: expVK, - K: pooltypeexp.LinkKind, + K: typeexp.LinkKind, SupExpVK: supExpVK, - Spec: pooltypeexp.ExpSpecDS{ + Spec: typeexp.ExpSpecDS{ Link: uniqsym.ConvertToString(rec.TypeQN), }, } dto.States = append(dto.States, st) return expVK - case pooltypeexp.PlusRec: - st := pooltypeexp.StateDS{ + case typeexp.PlusRec: + st := typeexp.StateDS{ ExpVK: expVK, - K: pooltypeexp.PlusKind, + K: typeexp.PlusKind, SupExpVK: supExpVK, - Spec: pooltypeexp.ExpSpecDS{Plus: &pooltypeexp.SumDS{ + Spec: typeexp.ExpSpecDS{Plus: &typeexp.SumDS{ ProcQNs: uniqsym.ConvertToStrings(rec.ProcQNs), ContExpVK: statesFromExpRec(expVK, rec.ContExp, dto), }}, } dto.States = append(dto.States, st) return expVK - case pooltypeexp.WithRec: - st := pooltypeexp.StateDS{ + case typeexp.WithRec: + st := typeexp.StateDS{ ExpVK: expVK, - K: pooltypeexp.WithKind, + K: typeexp.WithKind, SupExpVK: supExpVK, - Spec: pooltypeexp.ExpSpecDS{With: &pooltypeexp.SumDS{ + Spec: typeexp.ExpSpecDS{With: &typeexp.SumDS{ ProcQNs: uniqsym.ConvertToStrings(rec.ProcQNs), ContExpVK: statesFromExpRec(expVK, rec.ContExp, dto), }}, } dto.States = append(dto.States, st) return expVK - case pooltypeexp.UpRec: - st := pooltypeexp.StateDS{ + case typeexp.UpRec: + st := typeexp.StateDS{ ExpVK: expVK, - K: pooltypeexp.UpKind, + K: typeexp.UpKind, SupExpVK: supExpVK, - Spec: pooltypeexp.ExpSpecDS{Up: &pooltypeexp.ShiftDS{ + Spec: typeexp.ExpSpecDS{Up: &typeexp.ShiftDS{ ContExpVK: statesFromExpRec(expVK, rec.ContExp, dto), }}, } dto.States = append(dto.States, st) return expVK - case pooltypeexp.DownRec: - st := pooltypeexp.StateDS{ + case typeexp.DownRec: + st := typeexp.StateDS{ ExpVK: expVK, - K: pooltypeexp.DownKind, + K: typeexp.DownKind, SupExpVK: supExpVK, - Spec: pooltypeexp.ExpSpecDS{Up: &pooltypeexp.ShiftDS{ + Spec: typeexp.ExpSpecDS{Up: &typeexp.ShiftDS{ ContExpVK: statesFromExpRec(expVK, rec.ContExp, dto), }}, } dto.States = append(dto.States, st) return expVK default: - panic(pooltypeexp.ErrRecTypeUnexpected(r)) + panic(typeexp.ErrRecTypeUnexpected(r)) } } -func errExpKindUnexpected(k pooltypeexp.ExpKind) error { +func errExpKindUnexpected(k typeexp.ExpKind) error { return fmt.Errorf("exp kind unexpected: %v", k) } diff --git a/pool/typeexp/adapter/tc_goverter.go b/pool/typeexp/adapter/tc_goverter.go index f25cb9a6..1c1b3551 100644 --- a/pool/typeexp/adapter/tc_goverter.go +++ b/pool/typeexp/adapter/tc_goverter.go @@ -1,9 +1,9 @@ package adapter import ( - "github.com/orglang/go-sdk/pool/typeexp" + sdktypeexp "github.com/orglang/go-sdk/pool/typeexp" - pooltypeexp "orglang/go-engine/pool/typeexp/core" + typeexp "orglang/go-engine/pool/typeexp/core" ) // goverter:variables @@ -11,8 +11,8 @@ import ( // goverter:extend orglang/go-engine/adt/identity:Convert.* // goverter:extend msg.* var ( - MsgFromExpRefs func([]pooltypeexp.ExpRef) []typeexp.ExpRef - MsgToExpRefs func([]typeexp.ExpRef) ([]pooltypeexp.ExpRef, error) + MsgFromExpRefs func([]typeexp.ExpRef) []sdktypeexp.ExpRef + MsgToExpRefs func([]sdktypeexp.ExpRef) ([]typeexp.ExpRef, error) ) // goverter:variables @@ -20,8 +20,8 @@ var ( // goverter:extend orglang/go-engine/adt/identity:Convert.* // goverter:extend data.* var ( - DataToExpRefs func([]pooltypeexp.ExpRefDS) ([]pooltypeexp.ExpRef, error) - DataFromExpRefs func([]pooltypeexp.ExpRef) []pooltypeexp.ExpRefDS - DataToExpRecs func([]pooltypeexp.ExpRecDS) ([]pooltypeexp.ExpRec, error) - DataFromExpRecs func([]pooltypeexp.ExpRec) []pooltypeexp.ExpRecDS + DataToExpRefs func([]typeexp.ExpRefDS) ([]typeexp.ExpRef, error) + DataFromExpRefs func([]typeexp.ExpRef) []typeexp.ExpRefDS + DataToExpRecs func([]typeexp.ExpRecDS) ([]typeexp.ExpRec, error) + DataFromExpRecs func([]typeexp.ExpRec) []typeexp.ExpRecDS ) diff --git a/proc/commturn/adapter/di_fx.go b/proc/commturn/adapter/di_fx.go index 13b0ccef..fa48e06a 100644 --- a/proc/commturn/adapter/di_fx.go +++ b/proc/commturn/adapter/di_fx.go @@ -3,11 +3,11 @@ package adapter import ( "go.uber.org/fx" - proccommturn "orglang/go-engine/proc/commturn/core" + commturn "orglang/go-engine/proc/commturn/core" ) var Module = fx.Module("proc/commturn", fx.Provide( - fx.Annotate(NewDaoPgx, fx.As(new(proccommturn.Repo))), + fx.Annotate(NewDaoPgx, fx.As(new(commturn.Repo))), ), ) diff --git a/proc/commturn/adapter/ds_pgx.go b/proc/commturn/adapter/ds_pgx.go index 21310da8..ecafa3d9 100644 --- a/proc/commturn/adapter/ds_pgx.go +++ b/proc/commturn/adapter/ds_pgx.go @@ -12,7 +12,7 @@ import ( "orglang/go-engine/adt/identity" - proccommturn "orglang/go-engine/proc/commturn/core" + commturn "orglang/go-engine/proc/commturn/core" ) type daoPgx struct { @@ -20,16 +20,16 @@ type daoPgx struct { } // for compilation purposes -func newRepo() proccommturn.Repo { +func newRepo() commturn.Repo { return new(daoPgx) } -func NewDaoPgx(l *slog.Logger) proccommturn.Repo { +func NewDaoPgx(l *slog.Logger) commturn.Repo { name := slog.String("name", reflect.TypeFor[daoPgx]().Name()) return &daoPgx{l.With(name)} } -func (dao *daoPgx) InsertRecs(uow db.UoW, recs ...proccommturn.TurnRec) error { +func (dao *daoPgx) InsertRecs(uow db.UoW, recs ...commturn.TurnRec) error { dtos, err := DataFromStepRecs(recs) if err != nil { dao.log.Error("conversion failed") @@ -61,7 +61,7 @@ func (dao *daoPgx) InsertRecs(uow db.UoW, recs ...proccommturn.TurnRec) error { return nil } -func (dao *daoPgx) SelectRecs(uow db.UoW, rid identity.ADT) (proccommturn.TurnRec, error) { +func (dao *daoPgx) SelectRecs(uow db.UoW, rid identity.ADT) (commturn.TurnRec, error) { query := ` select id, kind, pid, vid, spec @@ -70,14 +70,14 @@ func (dao *daoPgx) SelectRecs(uow db.UoW, rid identity.ADT) (proccommturn.TurnRe return dao.execute(uow, query, rid.String()) } -func (dao *daoPgx) execute(uow db.UoW, query string, arg string) (proccommturn.TurnRec, error) { +func (dao *daoPgx) execute(uow db.UoW, query string, arg string) (commturn.TurnRec, error) { rows, err := uow.Pgx.Query(uow.Ctx, query, arg) if err != nil { dao.log.Error("query execution failed", slog.String("q", query)) return nil, err } defer rows.Close() - dto, err := pgx.CollectExactlyOneRow(rows, pgx.RowToStructByName[proccommturn.StepRecDS]) + dto, err := pgx.CollectExactlyOneRow(rows, pgx.RowToStructByName[commturn.StepRecDS]) if errors.Is(err, pgx.ErrNoRows) { return nil, nil } diff --git a/proc/commturn/adapter/tc.go b/proc/commturn/adapter/tc.go index 5badac83..310616a2 100644 --- a/proc/commturn/adapter/tc.go +++ b/proc/commturn/adapter/tc.go @@ -3,61 +3,61 @@ package adapter import ( "fmt" - proccommturn "orglang/go-engine/proc/commturn/core" + commturn "orglang/go-engine/proc/commturn/core" termexp "orglang/go-engine/proc/termexp/adapter" ) -func dataFromStepRec(r proccommturn.TurnRec) (proccommturn.StepRecDS, error) { +func dataFromStepRec(r commturn.TurnRec) (commturn.StepRecDS, error) { if r == nil { - return proccommturn.StepRecDS{}, nil + return commturn.StepRecDS{}, nil } switch rec := r.(type) { - case proccommturn.PubRec: + case commturn.PubRec: msgVal, err := termexp.DataFromExpRec(rec.ValExp) if err != nil { - return proccommturn.StepRecDS{}, err + return commturn.StepRecDS{}, err } - return proccommturn.StepRecDS{ - K: proccommturn.MsgStep, + return commturn.StepRecDS{ + K: commturn.MsgStep, ProcER: msgVal, }, nil - case proccommturn.SubRec: + case commturn.SubRec: svcCont, err := termexp.DataFromExpRec(rec.ContExp) if err != nil { - return proccommturn.StepRecDS{}, err + return commturn.StepRecDS{}, err } - return proccommturn.StepRecDS{ - K: proccommturn.SvcStep, + return commturn.StepRecDS{ + K: commturn.SvcStep, ProcER: svcCont, }, nil default: - panic(proccommturn.ErrRecTypeUnexpected(rec)) + panic(commturn.ErrRecTypeUnexpected(rec)) } } -func dataToStepRec(dto proccommturn.StepRecDS) (proccommturn.TurnRec, error) { - var nilData proccommturn.StepRecDS +func dataToStepRec(dto commturn.StepRecDS) (commturn.TurnRec, error) { + var nilData commturn.StepRecDS if dto == nilData { return nil, nil } switch dto.K { - case proccommturn.MsgStep: + case commturn.MsgStep: val, err := termexp.DataToExpRec(dto.ProcER) if err != nil { return nil, err } - return proccommturn.PubRec{ValExp: val}, nil - case proccommturn.SvcStep: + return commturn.PubRec{ValExp: val}, nil + case commturn.SvcStep: cont, err := termexp.DataToExpRec(dto.ProcER) if err != nil { return nil, err } - return proccommturn.SubRec{ContExp: cont}, nil + return commturn.SubRec{ContExp: cont}, nil default: panic(errUnexpectedStepKind(dto.K)) } } -func errUnexpectedStepKind(k proccommturn.StepKindDS) error { +func errUnexpectedStepKind(k commturn.StepKindDS) error { return fmt.Errorf("unexpected step kind: %v", k) } diff --git a/proc/commturn/adapter/tc_goverter.go b/proc/commturn/adapter/tc_goverter.go index c7afcd1c..23366495 100644 --- a/proc/commturn/adapter/tc_goverter.go +++ b/proc/commturn/adapter/tc_goverter.go @@ -1,7 +1,7 @@ package adapter import ( - proccommturn "orglang/go-engine/proc/commturn/core" + commturn "orglang/go-engine/proc/commturn/core" ) // goverter:variables @@ -9,6 +9,6 @@ import ( // goverter:extend orglang/go-engine/adt/identity:Convert.* // goverter:extend data.* var ( - DataToStepRecs func([]proccommturn.StepRecDS) ([]proccommturn.TurnRec, error) - DataFromStepRecs func([]proccommturn.TurnRec) ([]proccommturn.StepRecDS, error) + DataToStepRecs func([]commturn.StepRecDS) ([]commturn.TurnRec, error) + DataFromStepRecs func([]commturn.TurnRec) ([]commturn.StepRecDS, error) ) diff --git a/proc/compstep/adapter/tc_goverter.go b/proc/compstep/adapter/tc_goverter.go index 975814eb..0c106528 100644 --- a/proc/compstep/adapter/tc_goverter.go +++ b/proc/compstep/adapter/tc_goverter.go @@ -1,9 +1,9 @@ package adapter import ( - "github.com/orglang/go-sdk/proc/compstep" + sdkcompstep "github.com/orglang/go-sdk/proc/compstep" - proccompstep "orglang/go-engine/proc/compstep/core" + compstep "orglang/go-engine/proc/compstep/core" ) // goverter:variables @@ -11,6 +11,6 @@ import ( // goverter:extend orglang/go-engine/adt/identity:Convert.* // goverter:extend orglang/go-engine/proc/termexp/adapter:Msg.* var ( - MsgFromStepSpec func(proccompstep.StepSpec) compstep.StepSpec - MsgToStepSpec func(compstep.StepSpec) (proccompstep.StepSpec, error) + MsgFromStepSpec func(compstep.StepSpec) sdkcompstep.StepSpec + MsgToStepSpec func(sdkcompstep.StepSpec) (compstep.StepSpec, error) ) diff --git a/proc/termdef/adapter/di_fx.go b/proc/termdef/adapter/di_fx.go index f6711525..c9e2bd06 100644 --- a/proc/termdef/adapter/di_fx.go +++ b/proc/termdef/adapter/di_fx.go @@ -3,11 +3,11 @@ package adapter import ( "go.uber.org/fx" - proctermdef "orglang/go-engine/proc/termdef/core" + termdef "orglang/go-engine/proc/termdef/core" ) var Module = fx.Module("proc/termdef", fx.Provide( - fx.Annotate(NewDaoPgx, fx.As(new(proctermdef.Repo))), + fx.Annotate(NewDaoPgx, fx.As(new(termdef.Repo))), ), ) diff --git a/proc/termdef/adapter/ds_pgx.go b/proc/termdef/adapter/ds_pgx.go index 48cd0e36..2d46f938 100644 --- a/proc/termdef/adapter/ds_pgx.go +++ b/proc/termdef/adapter/ds_pgx.go @@ -6,7 +6,7 @@ import ( "orglang/go-engine/lib/db" - proctermdef "orglang/go-engine/proc/termdef/core" + termdef "orglang/go-engine/proc/termdef/core" ) // Adapter @@ -15,15 +15,15 @@ type daoPgx struct { } // for compilation purposes -func newRepo() proctermdef.Repo { +func newRepo() termdef.Repo { return new(daoPgx) } -func NewDaoPgx(l *slog.Logger) proctermdef.Repo { +func NewDaoPgx(l *slog.Logger) termdef.Repo { name := slog.String("name", reflect.TypeFor[daoPgx]().Name()) return &daoPgx{l.With(name)} } -func (dao *daoPgx) InsertProc(db.UoW, proctermdef.DefRec) error { +func (dao *daoPgx) InsertProc(db.UoW, termdef.DefRec) error { return nil } diff --git a/proc/termexp/adapter/di_fx.go b/proc/termexp/adapter/di_fx.go index 9af562be..b63d51bd 100644 --- a/proc/termexp/adapter/di_fx.go +++ b/proc/termexp/adapter/di_fx.go @@ -3,11 +3,11 @@ package adapter import ( "go.uber.org/fx" - proctermexp "orglang/go-engine/proc/termexp/core" + termexp "orglang/go-engine/proc/termexp/core" ) var Module = fx.Module("proc/termexp", fx.Provide( - fx.Annotate(NewDaoPgx, fx.As(new(proctermexp.Repo))), + fx.Annotate(NewDaoPgx, fx.As(new(termexp.Repo))), ), ) diff --git a/proc/termexp/adapter/ds_pgx.go b/proc/termexp/adapter/ds_pgx.go index 097e7ce2..1011fea8 100644 --- a/proc/termexp/adapter/ds_pgx.go +++ b/proc/termexp/adapter/ds_pgx.go @@ -6,7 +6,7 @@ import ( "orglang/go-engine/lib/db" - proctermexp "orglang/go-engine/proc/termexp/core" + termexp "orglang/go-engine/proc/termexp/core" ) // Adapter @@ -15,15 +15,15 @@ type daoPgx struct { } // for compilation purposes -func newRepo() proctermexp.Repo { +func newRepo() termexp.Repo { return new(daoPgx) } -func NewDaoPgx(l *slog.Logger) proctermexp.Repo { +func NewDaoPgx(l *slog.Logger) termexp.Repo { name := slog.String("name", reflect.TypeFor[daoPgx]().Name()) return &daoPgx{l.With(name)} } -func (dao *daoPgx) Insert(uow db.UoW, rec proctermexp.ExpRec) error { +func (dao *daoPgx) Insert(uow db.UoW, rec termexp.ExpRec) error { return nil } diff --git a/proc/termexp/adapter/tc.go b/proc/termexp/adapter/tc.go index 0cfd2a1e..26a4dadd 100644 --- a/proc/termexp/adapter/tc.go +++ b/proc/termexp/adapter/tc.go @@ -7,12 +7,12 @@ import ( "orglang/go-engine/adt/symbol" "orglang/go-engine/adt/uniqsym" - "github.com/orglang/go-sdk/proc/termexp" + sdktermexp "github.com/orglang/go-sdk/proc/termexp" - proctermexp "orglang/go-engine/proc/termexp/core" + termexp "orglang/go-engine/proc/termexp/core" ) -func MsgFromExpSpecNilable(spec proctermexp.ExpSpec) *termexp.ExpSpec { +func MsgFromExpSpecNilable(spec termexp.ExpSpec) *sdktermexp.ExpSpec { if spec == nil { return nil } @@ -20,89 +20,89 @@ func MsgFromExpSpecNilable(spec proctermexp.ExpSpec) *termexp.ExpSpec { return &dto } -func MsgFromExpSpec(s proctermexp.ExpSpec) termexp.ExpSpec { +func MsgFromExpSpec(s termexp.ExpSpec) sdktermexp.ExpSpec { switch spec := s.(type) { - case proctermexp.CloseSpec: - return termexp.ExpSpec{ - K: termexp.Close, - Close: &termexp.CloseSpec{ + case termexp.CloseSpec: + return sdktermexp.ExpSpec{ + K: sdktermexp.Close, + Close: &sdktermexp.CloseSpec{ CommChnlPH: symbol.ConvertToString(spec.ContChnlPH), }, } - case proctermexp.WaitSpec: - return termexp.ExpSpec{ - K: termexp.Wait, - Wait: &termexp.WaitSpec{ + case termexp.WaitSpec: + return sdktermexp.ExpSpec{ + K: sdktermexp.Wait, + Wait: &sdktermexp.WaitSpec{ CommChnlPH: symbol.ConvertToString(spec.ContChnlPH), ContES: MsgFromExpSpec(spec.ContExp), }, } - case proctermexp.SendSpec: - return termexp.ExpSpec{ - K: termexp.Send, - Send: &termexp.SendSpec{ + case termexp.SendSpec: + return sdktermexp.ExpSpec{ + K: sdktermexp.Send, + Send: &sdktermexp.SendSpec{ CommChnlPH: symbol.ConvertToString(spec.CommChnlPH), ValChnlPH: symbol.ConvertToString(spec.ValChnlPH), }, } - case proctermexp.RecvSpec: - return termexp.ExpSpec{ - K: termexp.Recv, - Recv: &termexp.RecvSpec{ + case termexp.RecvSpec: + return sdktermexp.ExpSpec{ + K: sdktermexp.Recv, + Recv: &sdktermexp.RecvSpec{ CommChnlPH: symbol.ConvertToString(spec.CommChnlPH), BindChnlPH: symbol.ConvertToString(spec.CommChnlPH), ContES: MsgFromExpSpec(spec.ContExp), }, } - case proctermexp.LabSpec: - return termexp.ExpSpec{ - K: termexp.Lab, - Lab: &termexp.LabSpec{ + case termexp.LabSpec: + return sdktermexp.ExpSpec{ + K: sdktermexp.Lab, + Lab: &sdktermexp.LabSpec{ CommChnlPH: symbol.ConvertToString(spec.CommChnlPH), PatternQN: uniqsym.ConvertToString(spec.ValLabQN), }, } - case proctermexp.CaseSpec: - brs := []termexp.BranchSpec{} + case termexp.CaseSpec: + brs := []sdktermexp.BranchSpec{} for l, t := range spec.ContExps { - brs = append(brs, termexp.BranchSpec{PatternQN: uniqsym.ConvertToString(l), ContES: MsgFromExpSpec(t)}) + brs = append(brs, sdktermexp.BranchSpec{PatternQN: uniqsym.ConvertToString(l), ContES: MsgFromExpSpec(t)}) } - return termexp.ExpSpec{ - K: termexp.Case, - Case: &termexp.CaseSpec{ + return sdktermexp.ExpSpec{ + K: sdktermexp.Case, + Case: &sdktermexp.CaseSpec{ CommChnlPH: symbol.ConvertToString(spec.CommChnlPH), ContBSes: brs, }, } - case proctermexp.FwdSpec: - return termexp.ExpSpec{ - K: termexp.Fwd, - Fwd: &termexp.FwdSpec{ + case termexp.FwdSpec: + return sdktermexp.ExpSpec{ + K: sdktermexp.Fwd, + Fwd: &sdktermexp.FwdSpec{ CommChnlPH: symbol.ConvertToString(spec.CommChnlPH), ContChnlPH: symbol.ConvertToString(spec.ContChnlPH), }, } default: - panic(proctermexp.ErrExpTypeUnexpected(s)) + panic(termexp.ErrExpTypeUnexpected(s)) } } -func MsgToExpSpecNilable(dto *termexp.ExpSpec) (proctermexp.ExpSpec, error) { +func MsgToExpSpecNilable(dto *sdktermexp.ExpSpec) (termexp.ExpSpec, error) { if dto == nil { return nil, nil } return MsgToExpSpec(*dto) } -func MsgToExpSpec(dto termexp.ExpSpec) (proctermexp.ExpSpec, error) { +func MsgToExpSpec(dto sdktermexp.ExpSpec) (termexp.ExpSpec, error) { switch dto.K { - case termexp.Close: + case sdktermexp.Close: x, err := symbol.ConvertFromString(dto.Close.CommChnlPH) if err != nil { return nil, err } - return proctermexp.CloseSpec{ContChnlPH: x}, nil - case termexp.Wait: + return termexp.CloseSpec{ContChnlPH: x}, nil + case sdktermexp.Wait: x, err := symbol.ConvertFromString(dto.Wait.CommChnlPH) if err != nil { return nil, err @@ -111,8 +111,8 @@ func MsgToExpSpec(dto termexp.ExpSpec) (proctermexp.ExpSpec, error) { if err != nil { return nil, err } - return proctermexp.WaitSpec{ContChnlPH: x, ContExp: cont}, nil - case termexp.Send: + return termexp.WaitSpec{ContChnlPH: x, ContExp: cont}, nil + case sdktermexp.Send: x, err := symbol.ConvertFromString(dto.Send.CommChnlPH) if err != nil { return nil, err @@ -121,8 +121,8 @@ func MsgToExpSpec(dto termexp.ExpSpec) (proctermexp.ExpSpec, error) { if err != nil { return nil, err } - return proctermexp.SendSpec{CommChnlPH: x, ValChnlPH: y}, nil - case termexp.Recv: + return termexp.SendSpec{CommChnlPH: x, ValChnlPH: y}, nil + case sdktermexp.Recv: x, err := symbol.ConvertFromString(dto.Recv.CommChnlPH) if err != nil { return nil, err @@ -135,8 +135,8 @@ func MsgToExpSpec(dto termexp.ExpSpec) (proctermexp.ExpSpec, error) { if err != nil { return nil, err } - return proctermexp.RecvSpec{CommChnlPH: x, NewChnlPH: y, ContExp: cont}, nil - case termexp.Lab: + return termexp.RecvSpec{CommChnlPH: x, NewChnlPH: y, ContExp: cont}, nil + case sdktermexp.Lab: x, err := symbol.ConvertFromString(dto.Lab.CommChnlPH) if err != nil { return nil, err @@ -145,13 +145,13 @@ func MsgToExpSpec(dto termexp.ExpSpec) (proctermexp.ExpSpec, error) { if err != nil { return nil, err } - return proctermexp.LabSpec{CommChnlPH: x, ValLabQN: label}, nil - case termexp.Case: + return termexp.LabSpec{CommChnlPH: x, ValLabQN: label}, nil + case sdktermexp.Case: x, err := symbol.ConvertFromString(dto.Case.CommChnlPH) if err != nil { return nil, err } - conts := make(map[uniqsym.ADT]proctermexp.ExpSpec, len(dto.Case.ContBSes)) + conts := make(map[uniqsym.ADT]termexp.ExpSpec, len(dto.Case.ContBSes)) for _, b := range dto.Case.ContBSes { cont, err := MsgToExpSpec(b.ContES) if err != nil { @@ -163,8 +163,8 @@ func MsgToExpSpec(dto termexp.ExpSpec) (proctermexp.ExpSpec, error) { } conts[label] = cont } - return proctermexp.CaseSpec{CommChnlPH: x, ContExps: conts}, nil - case termexp.Call: + return termexp.CaseSpec{CommChnlPH: x, ContExps: conts}, nil + case sdktermexp.Call: bindPH, err := symbol.ConvertFromString(dto.Call.BindChnlPH) if err != nil { return nil, err @@ -177,8 +177,8 @@ func MsgToExpSpec(dto termexp.ExpSpec) (proctermexp.ExpSpec, error) { if err != nil { return nil, err } - return proctermexp.CallSpec{NewChnlPH: bindPH, ProcTermQN: procQN, ValChnlPHs: valPHs}, nil - case termexp.Fwd: + return termexp.CallSpec{NewChnlPH: bindPH, ProcTermQN: procQN, ValChnlPHs: valPHs}, nil + case sdktermexp.Fwd: x, err := symbol.ConvertFromString(dto.Fwd.CommChnlPH) if err != nil { return nil, err @@ -187,96 +187,96 @@ func MsgToExpSpec(dto termexp.ExpSpec) (proctermexp.ExpSpec, error) { if err != nil { return nil, err } - return proctermexp.FwdSpec{CommChnlPH: x, ContChnlPH: y}, nil + return termexp.FwdSpec{CommChnlPH: x, ContChnlPH: y}, nil default: - panic(termexp.ErrUnexpectedExpKind(dto.K)) + panic(sdktermexp.ErrUnexpectedExpKind(dto.K)) } } -func DataFromExpRec(r proctermexp.ExpRec) (proctermexp.ExpRecDS, error) { +func DataFromExpRec(r termexp.ExpRec) (termexp.ExpRecDS, error) { switch rec := r.(type) { - case proctermexp.CloseRec: - return proctermexp.ExpRecDS{ - K: proctermexp.CloseExp, - Close: &proctermexp.CloseRecDS{X: symbol.ConvertToString(rec.ContChnlPH)}, + case termexp.CloseRec: + return termexp.ExpRecDS{ + K: termexp.CloseExp, + Close: &termexp.CloseRecDS{X: symbol.ConvertToString(rec.ContChnlPH)}, }, nil - case proctermexp.WaitRec: + case termexp.WaitRec: dto, err := dataFromExpSpec(rec.ContExp) if err != nil { - return proctermexp.ExpRecDS{}, err + return termexp.ExpRecDS{}, err } - return proctermexp.ExpRecDS{ - K: proctermexp.WaitExp, - Wait: &proctermexp.WaitRecDS{ + return termexp.ExpRecDS{ + K: termexp.WaitExp, + Wait: &termexp.WaitRecDS{ X: symbol.ConvertToString(rec.ContChnlPH), ContES: dto, }, }, nil - case proctermexp.SendRec: - return proctermexp.ExpRecDS{ - K: proctermexp.SendExp, - Send: &proctermexp.SendRecDS{ + case termexp.SendRec: + return termexp.ExpRecDS{ + K: termexp.SendExp, + Send: &termexp.SendRecDS{ X: symbol.ConvertToString(rec.CommChnlPH), A: identity.ConvertToString(rec.ContChnlID), B: identity.ConvertToString(rec.ValChnlID), }, }, nil - case proctermexp.RecvRec: + case termexp.RecvRec: dto, err := dataFromExpSpec(rec.ContExp) if err != nil { - return proctermexp.ExpRecDS{}, err + return termexp.ExpRecDS{}, err } - return proctermexp.ExpRecDS{ - K: proctermexp.RecvExp, - Recv: &proctermexp.RecvRecDS{ + return termexp.ExpRecDS{ + K: termexp.RecvExp, + Recv: &termexp.RecvRecDS{ X: symbol.ConvertToString(rec.CommChnlPH), Y: symbol.ConvertToString(rec.NewChnlPH), ContES: dto, }, }, nil - case proctermexp.LabRec: - return proctermexp.ExpRecDS{ - K: proctermexp.LabExp, - Lab: &proctermexp.LabRecDS{X: symbol.ConvertToString(rec.CommChnlPH), Label: uniqsym.ConvertToString(rec.ValLabQN)}, + case termexp.LabRec: + return termexp.ExpRecDS{ + K: termexp.LabExp, + Lab: &termexp.LabRecDS{X: symbol.ConvertToString(rec.CommChnlPH), Label: uniqsym.ConvertToString(rec.ValLabQN)}, }, nil - case proctermexp.CaseRec: - brs := []proctermexp.BranchRecDS{} + case termexp.CaseRec: + brs := []termexp.BranchRecDS{} for l, cont := range rec.ContExps { dto, err := dataFromExpSpec(cont) if err != nil { - return proctermexp.ExpRecDS{}, err + return termexp.ExpRecDS{}, err } - brs = append(brs, proctermexp.BranchRecDS{Label: uniqsym.ConvertToString(l), ContES: dto}) + brs = append(brs, termexp.BranchRecDS{Label: uniqsym.ConvertToString(l), ContES: dto}) } - return proctermexp.ExpRecDS{ - K: proctermexp.CaseExp, - Case: &proctermexp.CaseRecDS{ + return termexp.ExpRecDS{ + K: termexp.CaseExp, + Case: &termexp.CaseRecDS{ X: symbol.ConvertToString(rec.CommChnlPH), Branches: brs, }, }, nil - case proctermexp.FwdRec: - return proctermexp.ExpRecDS{ - K: proctermexp.FwdExp, - Fwd: &proctermexp.FwdRecDS{ + case termexp.FwdRec: + return termexp.ExpRecDS{ + K: termexp.FwdExp, + Fwd: &termexp.FwdRecDS{ X: symbol.ConvertToString(rec.CommChnlPH), B: identity.ConvertToString(rec.ContChnlID), }, }, nil default: - panic(proctermexp.ErrExpTypeUnexpected(rec)) + panic(termexp.ErrExpTypeUnexpected(rec)) } } -func DataToExpRec(dto proctermexp.ExpRecDS) (proctermexp.ExpRec, error) { +func DataToExpRec(dto termexp.ExpRecDS) (termexp.ExpRec, error) { switch dto.K { - case proctermexp.CloseExp: + case termexp.CloseExp: a, err := symbol.ConvertFromString(dto.Close.X) if err != nil { return nil, err } - return proctermexp.CloseRec{ContChnlPH: a}, nil - case proctermexp.WaitExp: + return termexp.CloseRec{ContChnlPH: a}, nil + case termexp.WaitExp: x, err := symbol.ConvertFromString(dto.Wait.X) if err != nil { return nil, err @@ -285,8 +285,8 @@ func DataToExpRec(dto proctermexp.ExpRecDS) (proctermexp.ExpRec, error) { if err != nil { return nil, err } - return proctermexp.WaitRec{ContChnlPH: x, ContExp: cont}, nil - case proctermexp.SendExp: + return termexp.WaitRec{ContChnlPH: x, ContExp: cont}, nil + case termexp.SendExp: x, err := symbol.ConvertFromString(dto.Send.X) if err != nil { return nil, err @@ -295,8 +295,8 @@ func DataToExpRec(dto proctermexp.ExpRecDS) (proctermexp.ExpRec, error) { if err != nil { return nil, err } - return proctermexp.SendRec{CommChnlPH: x, ContChnlID: a}, nil - case proctermexp.RecvExp: + return termexp.SendRec{CommChnlPH: x, ContChnlID: a}, nil + case termexp.RecvExp: x, err := symbol.ConvertFromString(dto.Recv.X) if err != nil { return nil, err @@ -309,8 +309,8 @@ func DataToExpRec(dto proctermexp.ExpRecDS) (proctermexp.ExpRec, error) { if err != nil { return nil, err } - return proctermexp.RecvRec{CommChnlPH: x, NewChnlPH: y, ContExp: cont}, nil - case proctermexp.LabExp: + return termexp.RecvRec{CommChnlPH: x, NewChnlPH: y, ContExp: cont}, nil + case termexp.LabExp: a, err := symbol.ConvertFromString(dto.Lab.X) if err != nil { return nil, err @@ -319,13 +319,13 @@ func DataToExpRec(dto proctermexp.ExpRecDS) (proctermexp.ExpRec, error) { if err != nil { return nil, err } - return proctermexp.LabRec{CommChnlPH: a, ValLabQN: label}, nil - case proctermexp.CaseExp: + return termexp.LabRec{CommChnlPH: a, ValLabQN: label}, nil + case termexp.CaseExp: x, err := symbol.ConvertFromString(dto.Case.X) if err != nil { return nil, err } - conts := make(map[uniqsym.ADT]proctermexp.ExpSpec, len(dto.Case.Branches)) + conts := make(map[uniqsym.ADT]termexp.ExpSpec, len(dto.Case.Branches)) for _, branch := range dto.Case.Branches { cont, err := dataToExpSpec(branch.ContES) if err != nil { @@ -337,8 +337,8 @@ func DataToExpRec(dto proctermexp.ExpRecDS) (proctermexp.ExpRec, error) { } conts[label] = cont } - return proctermexp.CaseRec{CommChnlPH: x, ContExps: conts}, nil - case proctermexp.FwdExp: + return termexp.CaseRec{CommChnlPH: x, ContExps: conts}, nil + case termexp.FwdExp: x, err := symbol.ConvertFromString(dto.Fwd.X) if err != nil { return nil, err @@ -347,95 +347,95 @@ func DataToExpRec(dto proctermexp.ExpRecDS) (proctermexp.ExpRec, error) { if err != nil { return nil, err } - return proctermexp.FwdRec{CommChnlPH: x, ContChnlID: b}, nil + return termexp.FwdRec{CommChnlPH: x, ContChnlID: b}, nil default: panic(errUnexpectedExpKind(dto.K)) } } -func dataFromExpSpec(s proctermexp.ExpSpec) (proctermexp.ExpSpecDS, error) { +func dataFromExpSpec(s termexp.ExpSpec) (termexp.ExpSpecDS, error) { switch spec := s.(type) { - case proctermexp.CloseSpec: - return proctermexp.ExpSpecDS{ - K: proctermexp.CloseExp, - Close: &proctermexp.CloseSpecDS{X: symbol.ConvertToString(spec.ContChnlPH)}, + case termexp.CloseSpec: + return termexp.ExpSpecDS{ + K: termexp.CloseExp, + Close: &termexp.CloseSpecDS{X: symbol.ConvertToString(spec.ContChnlPH)}, }, nil - case proctermexp.WaitSpec: + case termexp.WaitSpec: dto, err := dataFromExpSpec(spec.ContExp) if err != nil { - return proctermexp.ExpSpecDS{}, err + return termexp.ExpSpecDS{}, err } - return proctermexp.ExpSpecDS{ - K: proctermexp.WaitExp, - Wait: &proctermexp.WaitSpecDS{ + return termexp.ExpSpecDS{ + K: termexp.WaitExp, + Wait: &termexp.WaitSpecDS{ X: symbol.ConvertToString(spec.ContChnlPH), ContES: dto, }, }, nil - case proctermexp.SendSpec: - return proctermexp.ExpSpecDS{ - K: proctermexp.SendExp, - Send: &proctermexp.SendSpecDS{ + case termexp.SendSpec: + return termexp.ExpSpecDS{ + K: termexp.SendExp, + Send: &termexp.SendSpecDS{ X: symbol.ConvertToString(spec.CommChnlPH), Y: symbol.ConvertToString(spec.ValChnlPH), }, }, nil - case proctermexp.RecvSpec: + case termexp.RecvSpec: dto, err := dataFromExpSpec(spec.ContExp) if err != nil { - return proctermexp.ExpSpecDS{}, err + return termexp.ExpSpecDS{}, err } - return proctermexp.ExpSpecDS{ - K: proctermexp.RecvExp, - Recv: &proctermexp.RecvSpecDS{ + return termexp.ExpSpecDS{ + K: termexp.RecvExp, + Recv: &termexp.RecvSpecDS{ X: symbol.ConvertToString(spec.CommChnlPH), Y: symbol.ConvertToString(spec.CommChnlPH), ContES: dto, }, }, nil - case proctermexp.LabSpec: - return proctermexp.ExpSpecDS{ - K: proctermexp.LabExp, - Lab: &proctermexp.LabSpecDS{X: symbol.ConvertToString(spec.CommChnlPH), Label: uniqsym.ConvertToString(spec.ValLabQN)}, + case termexp.LabSpec: + return termexp.ExpSpecDS{ + K: termexp.LabExp, + Lab: &termexp.LabSpecDS{X: symbol.ConvertToString(spec.CommChnlPH), Label: uniqsym.ConvertToString(spec.ValLabQN)}, }, nil - case proctermexp.CaseSpec: - brs := []proctermexp.BranchSpecDS{} + case termexp.CaseSpec: + brs := []termexp.BranchSpecDS{} for l, cont := range spec.ContExps { dto, err := dataFromExpSpec(cont) if err != nil { - return proctermexp.ExpSpecDS{}, err + return termexp.ExpSpecDS{}, err } - brs = append(brs, proctermexp.BranchSpecDS{Label: uniqsym.ConvertToString(l), ContES: dto}) + brs = append(brs, termexp.BranchSpecDS{Label: uniqsym.ConvertToString(l), ContES: dto}) } - return proctermexp.ExpSpecDS{ - K: proctermexp.CaseExp, - Case: &proctermexp.CaseSpecDS{ + return termexp.ExpSpecDS{ + K: termexp.CaseExp, + Case: &termexp.CaseSpecDS{ X: symbol.ConvertToString(spec.CommChnlPH), Branches: brs, }, }, nil - case proctermexp.FwdSpec: - return proctermexp.ExpSpecDS{ - K: proctermexp.FwdExp, - Fwd: &proctermexp.FwdSpecDS{ + case termexp.FwdSpec: + return termexp.ExpSpecDS{ + K: termexp.FwdExp, + Fwd: &termexp.FwdSpecDS{ X: symbol.ConvertToString(spec.CommChnlPH), Y: symbol.ConvertToString(spec.ContChnlPH), }, }, nil default: - panic(proctermexp.ErrExpTypeUnexpected(spec)) + panic(termexp.ErrExpTypeUnexpected(spec)) } } -func dataToExpSpec(dto proctermexp.ExpSpecDS) (proctermexp.ExpSpec, error) { +func dataToExpSpec(dto termexp.ExpSpecDS) (termexp.ExpSpec, error) { switch dto.K { - case proctermexp.CloseExp: + case termexp.CloseExp: a, err := symbol.ConvertFromString(dto.Close.X) if err != nil { return nil, err } - return proctermexp.CloseSpec{ContChnlPH: a}, nil - case proctermexp.WaitExp: + return termexp.CloseSpec{ContChnlPH: a}, nil + case termexp.WaitExp: x, err := symbol.ConvertFromString(dto.Wait.X) if err != nil { return nil, err @@ -444,8 +444,8 @@ func dataToExpSpec(dto proctermexp.ExpSpecDS) (proctermexp.ExpSpec, error) { if err != nil { return nil, err } - return proctermexp.WaitSpec{ContChnlPH: x, ContExp: cont}, nil - case proctermexp.SendExp: + return termexp.WaitSpec{ContChnlPH: x, ContExp: cont}, nil + case termexp.SendExp: x, err := symbol.ConvertFromString(dto.Send.X) if err != nil { return nil, err @@ -454,8 +454,8 @@ func dataToExpSpec(dto proctermexp.ExpSpecDS) (proctermexp.ExpSpec, error) { if err != nil { return nil, err } - return proctermexp.SendSpec{CommChnlPH: x, ValChnlPH: y}, nil - case proctermexp.RecvExp: + return termexp.SendSpec{CommChnlPH: x, ValChnlPH: y}, nil + case termexp.RecvExp: x, err := symbol.ConvertFromString(dto.Recv.X) if err != nil { return nil, err @@ -468,8 +468,8 @@ func dataToExpSpec(dto proctermexp.ExpSpecDS) (proctermexp.ExpSpec, error) { if err != nil { return nil, err } - return proctermexp.RecvSpec{CommChnlPH: x, NewChnlPH: y, ContExp: cont}, nil - case proctermexp.LabExp: + return termexp.RecvSpec{CommChnlPH: x, NewChnlPH: y, ContExp: cont}, nil + case termexp.LabExp: x, err := symbol.ConvertFromString(dto.Lab.X) if err != nil { return nil, err @@ -478,13 +478,13 @@ func dataToExpSpec(dto proctermexp.ExpSpecDS) (proctermexp.ExpSpec, error) { if err != nil { return nil, err } - return proctermexp.LabSpec{CommChnlPH: x, ValLabQN: label}, nil - case proctermexp.CaseExp: + return termexp.LabSpec{CommChnlPH: x, ValLabQN: label}, nil + case termexp.CaseExp: x, err := symbol.ConvertFromString(dto.Case.X) if err != nil { return nil, err } - conts := make(map[uniqsym.ADT]proctermexp.ExpSpec, len(dto.Case.Branches)) + conts := make(map[uniqsym.ADT]termexp.ExpSpec, len(dto.Case.Branches)) for _, b := range dto.Case.Branches { cont, err := dataToExpSpec(b.ContES) if err != nil { @@ -496,8 +496,8 @@ func dataToExpSpec(dto proctermexp.ExpSpecDS) (proctermexp.ExpSpec, error) { } conts[label] = cont } - return proctermexp.CaseSpec{CommChnlPH: x, ContExps: conts}, nil - case proctermexp.FwdExp: + return termexp.CaseSpec{CommChnlPH: x, ContExps: conts}, nil + case termexp.FwdExp: x, err := symbol.ConvertFromString(dto.Fwd.X) if err != nil { return nil, err @@ -506,12 +506,12 @@ func dataToExpSpec(dto proctermexp.ExpSpecDS) (proctermexp.ExpSpec, error) { if err != nil { return nil, err } - return proctermexp.FwdSpec{CommChnlPH: x, ContChnlPH: y}, nil + return termexp.FwdSpec{CommChnlPH: x, ContChnlPH: y}, nil default: panic(errUnexpectedExpKind(dto.K)) } } -func errUnexpectedExpKind(k proctermexp.ExpKind) error { +func errUnexpectedExpKind(k termexp.ExpKind) error { return fmt.Errorf("unexpected term kind: %v", k) } diff --git a/proc/termexp/adapter/tc_goverter.go b/proc/termexp/adapter/tc_goverter.go index e3220ef3..46411e38 100644 --- a/proc/termexp/adapter/tc_goverter.go +++ b/proc/termexp/adapter/tc_goverter.go @@ -1,7 +1,7 @@ package adapter import ( - proctermexp "orglang/go-engine/proc/termexp/core" + termexp "orglang/go-engine/proc/termexp/core" ) // goverter:variables @@ -9,8 +9,8 @@ import ( // goverter:extend Data.* // goverter:extend data.* var ( - DataToExpSpecs func([]proctermexp.ExpSpecDS) ([]proctermexp.ExpSpec, error) - DataFromExpSpecs func([]proctermexp.ExpSpec) ([]proctermexp.ExpSpecDS, error) - DataToExpRecs func([]proctermexp.ExpRecDS) ([]proctermexp.ExpRec, error) - DataFromExpRecs func([]proctermexp.ExpRec) ([]proctermexp.ExpRecDS, error) + DataToExpSpecs func([]termexp.ExpSpecDS) ([]termexp.ExpSpec, error) + DataFromExpSpecs func([]termexp.ExpSpec) ([]termexp.ExpSpecDS, error) + DataToExpRecs func([]termexp.ExpRecDS) ([]termexp.ExpRec, error) + DataFromExpRecs func([]termexp.ExpRec) ([]termexp.ExpRecDS, error) ) diff --git a/proc/typedef/adapter/di_fx.go b/proc/typedef/adapter/di_fx.go index afdac5b8..29c92b53 100644 --- a/proc/typedef/adapter/di_fx.go +++ b/proc/typedef/adapter/di_fx.go @@ -7,19 +7,19 @@ import ( "orglang/go-engine/adt/descsem" - proctypedef "orglang/go-engine/proc/typedef/core" + typedef "orglang/go-engine/proc/typedef/core" ) var Module = fx.Module("adproct/typedef", fx.Provide( - fx.Annotate(proctypedef.NewService, fx.As(new(proctypedef.API))), - fx.Annotate(NewDaoPgx, fx.As(new(proctypedef.Repo))), + fx.Annotate(typedef.NewService, fx.As(new(typedef.API))), + fx.Annotate(NewDaoPgx, fx.As(new(typedef.Repo))), ), fx.Provide( fx.Private, newControllerEcho, newEchoPresenter, - fx.Annotate(newSQLBuilder, fx.As(new(proctypedef.QueryBuilder))), + fx.Annotate(newSQLBuilder, fx.As(new(typedef.QueryBuilder))), fx.Annotate(newRendererStdlib, fx.As(new(te.Renderer))), fx.Annotate(descsem.NewDaoPgx(descBinds), fx.As(new(descsem.Repo))), ), diff --git a/proc/typedef/adapter/ds_pgx.go b/proc/typedef/adapter/ds_pgx.go index 943de836..83a2dcfe 100644 --- a/proc/typedef/adapter/ds_pgx.go +++ b/proc/typedef/adapter/ds_pgx.go @@ -14,25 +14,25 @@ import ( "orglang/go-engine/adt/typesem" "orglang/go-engine/adt/uniqsym" - proctypedef "orglang/go-engine/proc/typedef/core" + typedef "orglang/go-engine/proc/typedef/core" ) type daoPgx struct { - qb proctypedef.QueryBuilder + qb typedef.QueryBuilder log *slog.Logger } -func NewDaoPgx(qb proctypedef.QueryBuilder, log *slog.Logger) proctypedef.Repo { +func NewDaoPgx(qb typedef.QueryBuilder, log *slog.Logger) typedef.Repo { name := slog.String("name", reflect.TypeFor[daoPgx]().Name()) return &daoPgx{qb, log.With(name)} } // for compilation purposes -func newRepo() proctypedef.Repo { +func newRepo() typedef.Repo { return new(daoPgx) } -func (dao *daoPgx) AddRec(uow db.UoW, rec proctypedef.DefRec) error { +func (dao *daoPgx) AddRec(uow db.UoW, rec typedef.DefRec) error { idAttr := slog.Any("typeID", rec.TypeRef.TypeID) dao.log.Log(uow.Ctx, lf.LevelTrace, "addition started", idAttr) dto, err := DataFromDefRec(rec) @@ -50,7 +50,7 @@ func (dao *daoPgx) AddRec(uow db.UoW, rec proctypedef.DefRec) error { return nil } -func (dao *daoPgx) ModifyRec(uow db.UoW, rec proctypedef.DefRec) error { +func (dao *daoPgx) ModifyRec(uow db.UoW, rec typedef.DefRec) error { idAttr := slog.Any("typeID", rec.TypeRef.TypeID) dao.log.Log(uow.Ctx, lf.LevelTrace, "modification started", idAttr) dto, err := DataFromDefRec(rec) @@ -69,7 +69,7 @@ func (dao *daoPgx) ModifyRec(uow db.UoW, rec proctypedef.DefRec) error { } if ct.RowsAffected() == 0 { dao.log.Error("entity update failed", idAttr) - return proctypedef.ErrOptimisticUpdate(rec.TypeRef.TypeRN - 1) + return typedef.ErrOptimisticUpdate(rec.TypeRef.TypeRN - 1) } dao.log.Log(uow.Ctx, lf.LevelTrace, "modification succeed", idAttr) return nil @@ -91,43 +91,43 @@ func (dao *daoPgx) GetRefs(uow db.UoW) ([]typesem.SemRef, error) { return typesem.DataToRefs(dtos) } -func (dao *daoPgx) GetRecByRef(uow db.UoW, ref typesem.SemRef) (proctypedef.DefRec, error) { +func (dao *daoPgx) GetRecByRef(uow db.UoW, ref typesem.SemRef) (typedef.DefRec, error) { refAttr := slog.Any("ref", ref) rows, err := uow.Pgx.Query(uow.Ctx, selectRecByID, ref.TypeID.String()) if err != nil { dao.log.Error("query execution failed", refAttr) - return proctypedef.DefRec{}, err + return typedef.DefRec{}, err } defer rows.Close() - dto, err := pgx.CollectExactlyOneRow(rows, pgx.RowToStructByName[proctypedef.DefRecDS]) + dto, err := pgx.CollectExactlyOneRow(rows, pgx.RowToStructByName[typedef.DefRecDS]) if err != nil { dao.log.Error("row scanning failed", refAttr) - return proctypedef.DefRec{}, err + return typedef.DefRec{}, err } dao.log.Log(uow.Ctx, lf.LevelTrace, "entity selection succeed", refAttr) return DataToDefRec(dto) } -func (dao *daoPgx) GetRecByQN(uow db.UoW, typeQN uniqsym.ADT) (proctypedef.DefRec, error) { +func (dao *daoPgx) GetRecByQN(uow db.UoW, typeQN uniqsym.ADT) (typedef.DefRec, error) { qnAttr := slog.Any("typeQN", typeQN) rows, err := uow.Pgx.Query(uow.Ctx, selectRecByQN, uniqsym.ConvertToString(typeQN)) if err != nil { dao.log.Error("query execution failed", qnAttr) - return proctypedef.DefRec{}, err + return typedef.DefRec{}, err } defer rows.Close() - dto, err := pgx.CollectExactlyOneRow(rows, pgx.RowToStructByName[proctypedef.DefRecDS]) + dto, err := pgx.CollectExactlyOneRow(rows, pgx.RowToStructByName[typedef.DefRecDS]) if err != nil { dao.log.Error("row scanning failed", qnAttr) - return proctypedef.DefRec{}, err + return typedef.DefRec{}, err } dao.log.Log(uow.Ctx, lf.LevelTrace, "entity selection succeed", qnAttr) return DataToDefRec(dto) } -func (dao *daoPgx) GetRecsByRefs(uow db.UoW, refs []typesem.SemRef) (_ []proctypedef.DefRec, err error) { +func (dao *daoPgx) GetRecsByRefs(uow db.UoW, refs []typesem.SemRef) (_ []typedef.DefRec, err error) { if len(refs) == 0 { - return []proctypedef.DefRec{}, nil + return []typedef.DefRec{}, nil } batch := pgx.Batch{} for _, ref := range refs { @@ -140,13 +140,13 @@ func (dao *daoPgx) GetRecsByRefs(uow db.UoW, refs []typesem.SemRef) (_ []proctyp defer func() { err = errors.Join(err, br.Close()) }() - var dtos []proctypedef.DefRecDS + var dtos []typedef.DefRecDS for _, defRef := range refs { rows, err := br.Query() if err != nil { dao.log.Error("query execution failed", slog.Any("defRef", defRef), slog.String("q", selectRecByID)) } - dto, err := pgx.CollectExactlyOneRow(rows, pgx.RowToStructByName[proctypedef.DefRecDS]) + dto, err := pgx.CollectExactlyOneRow(rows, pgx.RowToStructByName[typedef.DefRecDS]) if err != nil { dao.log.Error("row scanning failed", slog.Any("defRef", defRef)) } @@ -159,21 +159,21 @@ func (dao *daoPgx) GetRecsByRefs(uow db.UoW, refs []typesem.SemRef) (_ []proctyp return DataToDefRecs(dtos) } -func (dao *daoPgx) SelectEnv(uow db.UoW, typeQNs []uniqsym.ADT) (map[uniqsym.ADT]proctypedef.DefRec, error) { +func (dao *daoPgx) SelectEnv(uow db.UoW, typeQNs []uniqsym.ADT) (map[uniqsym.ADT]typedef.DefRec, error) { recs, err := dao.GetRecsByQNs(uow, typeQNs) if err != nil { return nil, err } - env := make(map[uniqsym.ADT]proctypedef.DefRec, len(recs)) + env := make(map[uniqsym.ADT]typedef.DefRec, len(recs)) for i, root := range recs { env[typeQNs[i]] = root } return env, nil } -func (dao *daoPgx) GetRecsByQNs(uow db.UoW, typeQNs []uniqsym.ADT) (_ []proctypedef.DefRec, err error) { +func (dao *daoPgx) GetRecsByQNs(uow db.UoW, typeQNs []uniqsym.ADT) (_ []typedef.DefRec, err error) { if len(typeQNs) == 0 { - return []proctypedef.DefRec{}, nil + return []typedef.DefRec{}, nil } batch := pgx.Batch{} for _, typeQN := range typeQNs { @@ -183,13 +183,13 @@ func (dao *daoPgx) GetRecsByQNs(uow db.UoW, typeQNs []uniqsym.ADT) (_ []proctype defer func() { err = errors.Join(err, br.Close()) }() - var dtos []proctypedef.DefRecDS + var dtos []typedef.DefRecDS for _, typeQN := range typeQNs { rows, err := br.Query() if err != nil { dao.log.Error("query execution failed", slog.Any("typeQN", typeQN), slog.String("q", selectRecByQN)) } - dto, err := pgx.CollectExactlyOneRow(rows, pgx.RowToStructByName[proctypedef.DefRecDS]) + dto, err := pgx.CollectExactlyOneRow(rows, pgx.RowToStructByName[typedef.DefRecDS]) if err != nil { dao.log.Error("row scanning failed", slog.Any("typeQN", typeQN)) } diff --git a/proc/typedef/adapter/me_echo.go b/proc/typedef/adapter/me_echo.go index b883644f..390de26f 100644 --- a/proc/typedef/adapter/me_echo.go +++ b/proc/typedef/adapter/me_echo.go @@ -8,21 +8,21 @@ import ( "github.com/labstack/echo/v4" sdk "github.com/orglang/go-sdk/adt/typesem" - "github.com/orglang/go-sdk/proc/typedef" + sdktypedef "github.com/orglang/go-sdk/proc/typedef" "orglang/go-engine/lib/lf" "orglang/go-engine/adt/typesem" - proctypedef "orglang/go-engine/proc/typedef/core" + typedef "orglang/go-engine/proc/typedef/core" ) // Server-side primary adapter type controllerEcho struct { - api proctypedef.API + api typedef.API log *slog.Logger } -func newControllerEcho(a proctypedef.API, l *slog.Logger) *controllerEcho { +func newControllerEcho(a typedef.API, l *slog.Logger) *controllerEcho { name := slog.String("name", reflect.TypeFor[controllerEcho]().Name()) return &controllerEcho{a, l.With(name)} } @@ -35,7 +35,7 @@ func cfgEchoController(e *echo.Echo, h *controllerEcho) error { } func (h *controllerEcho) PostSpec(c echo.Context) error { - var dto typedef.DefSpec + var dto sdktypedef.DefSpec bindErr := c.Bind(&dto) if bindErr != nil { h.log.Error("binding failed", slog.Any("dto", reflect.TypeOf(dto))) @@ -86,7 +86,7 @@ func (h *controllerEcho) GetSnap(c echo.Context) error { } func (h *controllerEcho) PatchOne(c echo.Context) error { - var dto typedef.DefSnap + var dto sdktypedef.DefSnap bindErr := c.Bind(&dto) if bindErr != nil { h.log.Error("binding failed", slog.Any("dto", reflect.TypeOf(dto))) diff --git a/proc/typedef/adapter/qb_sqlbuilder.go b/proc/typedef/adapter/qb_sqlbuilder.go index 9df1f388..20b4247d 100644 --- a/proc/typedef/adapter/qb_sqlbuilder.go +++ b/proc/typedef/adapter/qb_sqlbuilder.go @@ -3,7 +3,7 @@ package adapter import ( "github.com/huandu/go-sqlbuilder" - proctypedef "orglang/go-engine/proc/typedef/core" + typedef "orglang/go-engine/proc/typedef/core" ) type sqlBuilder struct { @@ -11,16 +11,16 @@ type sqlBuilder struct { } // for compilation purposes -func newQueryBuilder() proctypedef.QueryBuilder { +func newQueryBuilder() typedef.QueryBuilder { return new(sqlBuilder) } func newSQLBuilder() *sqlBuilder { - defBuilder := sqlbuilder.NewStruct(new(proctypedef.DefRecDS)).For(sqlbuilder.PostgreSQL) + defBuilder := sqlbuilder.NewStruct(new(typedef.DefRecDS)).For(sqlbuilder.PostgreSQL) return &sqlBuilder{defBuilder} } -func (qb *sqlBuilder) InsertRec(rec proctypedef.DefRecDS) (string, []any) { +func (qb *sqlBuilder) InsertRec(rec typedef.DefRecDS) (string, []any) { return qb.defBuilder.InsertInto(typeDefs, rec).Build() } diff --git a/proc/typedef/adapter/qb_sqlbuilder_test.go b/proc/typedef/adapter/qb_sqlbuilder_test.go index 76b77390..a6a708b1 100644 --- a/proc/typedef/adapter/qb_sqlbuilder_test.go +++ b/proc/typedef/adapter/qb_sqlbuilder_test.go @@ -4,13 +4,13 @@ import ( "slices" "testing" - proctypedef "orglang/go-engine/proc/typedef/core" + typedef "orglang/go-engine/proc/typedef/core" ) func TestInsertRec(t *testing.T) { t.Parallel() qb := newSQLBuilder() - gotSQL, gotArgs := qb.InsertRec(proctypedef.DefRecDS{ + gotSQL, gotArgs := qb.InsertRec(typedef.DefRecDS{ TypeID: "type-id-1", TypeRN: 7, ExpVK: 42, diff --git a/proc/typedef/adapter/tc_goverter.go b/proc/typedef/adapter/tc_goverter.go index 29037dd3..211b0f44 100644 --- a/proc/typedef/adapter/tc_goverter.go +++ b/proc/typedef/adapter/tc_goverter.go @@ -1,9 +1,9 @@ package adapter import ( - "github.com/orglang/go-sdk/proc/typedef" + sdktypedef "github.com/orglang/go-sdk/proc/typedef" - proctypedef "orglang/go-engine/proc/typedef/core" + typedef "orglang/go-engine/proc/typedef/core" ) // goverter:variables @@ -12,12 +12,12 @@ import ( // goverter:extend orglang/go-engine/adt/uniqsym:Convert.* // goverter:extend orglang/go-engine/proc/typeexp/adapter:Msg.* var ( - MsgFromDefSpec func(proctypedef.DefSpec) typedef.DefSpec - MsgToDefSpec func(typedef.DefSpec) (proctypedef.DefSpec, error) - MsgFromDefSnap func(proctypedef.DefSnap) typedef.DefSnap - MsgToDefSnap func(typedef.DefSnap) (proctypedef.DefSnap, error) - MsgFromDefSnaps func([]proctypedef.DefSnap) []typedef.DefSnap - MsgToDefSnaps func([]typedef.DefSnap) ([]proctypedef.DefSnap, error) + MsgFromDefSpec func(typedef.DefSpec) sdktypedef.DefSpec + MsgToDefSpec func(sdktypedef.DefSpec) (typedef.DefSpec, error) + MsgFromDefSnap func(typedef.DefSnap) sdktypedef.DefSnap + MsgToDefSnap func(sdktypedef.DefSnap) (typedef.DefSnap, error) + MsgFromDefSnaps func([]typedef.DefSnap) []sdktypedef.DefSnap + MsgToDefSnaps func([]sdktypedef.DefSnap) ([]typedef.DefSnap, error) ) // goverter:variables @@ -26,7 +26,7 @@ var ( // goverter:extend orglang/go-engine/adt/uniqsym:Convert.* // goverter:extend orglang/go-engine/proc/typeexp/adapter:Msg.* var ( - ViewFromDefSnap func(proctypedef.DefSnap) DefSnapVP + ViewFromDefSnap func(typedef.DefSnap) DefSnapVP ) // goverter:variables @@ -37,9 +37,9 @@ var ( // goverter:extend orglang/go-engine/proc/typeexp/adapter:Data.* var ( // goverter:map . TypeRef - DataToDefRec func(proctypedef.DefRecDS) (proctypedef.DefRec, error) - DataToDefRecs func([]proctypedef.DefRecDS) ([]proctypedef.DefRec, error) + DataToDefRec func(typedef.DefRecDS) (typedef.DefRec, error) + DataToDefRecs func([]typedef.DefRecDS) ([]typedef.DefRec, error) // goverter:autoMap TypeRef - DataFromDefRec func(proctypedef.DefRec) (proctypedef.DefRecDS, error) - DataFromDefRecs func([]proctypedef.DefRec) ([]proctypedef.DefRecDS, error) + DataFromDefRec func(typedef.DefRec) (typedef.DefRecDS, error) + DataFromDefRecs func([]typedef.DefRec) ([]typedef.DefRecDS, error) ) diff --git a/proc/typedef/adapter/vp_echo.go b/proc/typedef/adapter/vp_echo.go index d47e23ee..e6bcf84c 100644 --- a/proc/typedef/adapter/vp_echo.go +++ b/proc/typedef/adapter/vp_echo.go @@ -14,18 +14,18 @@ import ( "orglang/go-engine/adt/typesem" "orglang/go-engine/adt/uniqsym" - proctypedef "orglang/go-engine/proc/typedef/core" + typedef "orglang/go-engine/proc/typedef/core" typeexp "orglang/go-engine/proc/typeexp/core" ) // Adapter type echoPresenter struct { - api proctypedef.API + api typedef.API ssr te.Renderer log *slog.Logger } -func newEchoPresenter(a proctypedef.API, r te.Renderer, l *slog.Logger) *echoPresenter { +func newEchoPresenter(a typedef.API, r te.Renderer, l *slog.Logger) *echoPresenter { name := slog.String("name", reflect.TypeFor[echoPresenter]().Name()) return &echoPresenter{a, r, l.With(name)} } @@ -56,7 +56,7 @@ func (p *echoPresenter) PostOne(c echo.Context) error { p.log.Error("conversion failed", slog.Any("dto", dto)) return convErr } - snap, createErr := p.api.Create(proctypedef.DefSpec{TypeQN: qn, TypeExp: typeexp.OneSpec{}}) + snap, createErr := p.api.Create(typedef.DefSpec{TypeQN: qn, TypeExp: typeexp.OneSpec{}}) if createErr != nil { return createErr } diff --git a/proc/typeexp/adapter/di_fx.go b/proc/typeexp/adapter/di_fx.go index b4957238..c53f2ed0 100644 --- a/proc/typeexp/adapter/di_fx.go +++ b/proc/typeexp/adapter/di_fx.go @@ -3,15 +3,15 @@ package adapter import ( "go.uber.org/fx" - proctypeexp "orglang/go-engine/proc/typeexp/core" + typeexp "orglang/go-engine/proc/typeexp/core" ) var Module = fx.Module("proc/typeexp", fx.Provide( - fx.Annotate(NewDaoPgx, fx.As(new(proctypeexp.Repo))), + fx.Annotate(NewDaoPgx, fx.As(new(typeexp.Repo))), ), fx.Provide( fx.Private, - fx.Annotate(newSQLBuilder, fx.As(new(proctypeexp.QueryBuilder))), + fx.Annotate(newSQLBuilder, fx.As(new(typeexp.QueryBuilder))), ), ) diff --git a/proc/typeexp/adapter/ds_pgx.go b/proc/typeexp/adapter/ds_pgx.go index a3d45545..9fddebd0 100644 --- a/proc/typeexp/adapter/ds_pgx.go +++ b/proc/typeexp/adapter/ds_pgx.go @@ -12,26 +12,26 @@ import ( "orglang/go-engine/adt/valkey" - proctypeexp "orglang/go-engine/proc/typeexp/core" + typeexp "orglang/go-engine/proc/typeexp/core" ) // Adapter type daoPgx struct { - qb proctypeexp.QueryBuilder + qb typeexp.QueryBuilder log *slog.Logger } -func NewDaoPgx(qb proctypeexp.QueryBuilder, log *slog.Logger) proctypeexp.Repo { +func NewDaoPgx(qb typeexp.QueryBuilder, log *slog.Logger) typeexp.Repo { name := slog.String("name", reflect.TypeFor[daoPgx]().Name()) return &daoPgx{qb, log.With(name)} } // for compilation purposes -func newRepo() proctypeexp.Repo { +func newRepo() typeexp.Repo { return new(daoPgx) } -func (dao *daoPgx) AddRec(uow db.UoW, rec proctypeexp.ExpRec) (err error) { +func (dao *daoPgx) AddRec(uow db.UoW, rec typeexp.ExpRec) (err error) { vkAttr := slog.Any("expVK", rec.Key()) dto := dataFromExpRec(rec) batch := pgx.Batch{} @@ -53,7 +53,7 @@ func (dao *daoPgx) AddRec(uow db.UoW, rec proctypeexp.ExpRec) (err error) { return nil } -func (dao *daoPgx) SelectRecByVK(uow db.UoW, expVK valkey.ADT) (proctypeexp.ExpRec, error) { +func (dao *daoPgx) SelectRecByVK(uow db.UoW, expVK valkey.ADT) (typeexp.ExpRec, error) { vkAttr := slog.Any("expVK", expVK) rows, queryErr := uow.Pgx.Query(uow.Ctx, selectByID, valkey.ConvertToInt(expVK)) if queryErr != nil { @@ -61,7 +61,7 @@ func (dao *daoPgx) SelectRecByVK(uow db.UoW, expVK valkey.ADT) (proctypeexp.ExpR return nil, queryErr } defer rows.Close() - dtos, scanErr := pgx.CollectRows(rows, pgx.RowToStructByName[proctypeexp.StateDS]) + dtos, scanErr := pgx.CollectRows(rows, pgx.RowToStructByName[typeexp.StateDS]) if scanErr != nil { dao.log.Error("row scanning failed", vkAttr) return nil, scanErr @@ -71,26 +71,26 @@ func (dao *daoPgx) SelectRecByVK(uow db.UoW, expVK valkey.ADT) (proctypeexp.ExpR return nil, errors.New("no rows selected") } dao.log.Log(uow.Ctx, lf.LevelTrace, "entity selection succeed", slog.Any("dtos", dtos)) - states := make(map[int64]proctypeexp.StateDS, len(dtos)) + states := make(map[int64]typeexp.StateDS, len(dtos)) for _, dto := range dtos { states[dto.ExpVK] = dto } return statesToExpRec(states, states[valkey.ConvertToInt(expVK)]) } -func (dao *daoPgx) SelectEnv(uow db.UoW, expVKs []valkey.ADT) (map[valkey.ADT]proctypeexp.ExpRec, error) { +func (dao *daoPgx) SelectEnv(uow db.UoW, expVKs []valkey.ADT) (map[valkey.ADT]typeexp.ExpRec, error) { recs, err := dao.SelectRecsByVKs(uow, expVKs) if err != nil { return nil, err } - env := make(map[valkey.ADT]proctypeexp.ExpRec, len(recs)) + env := make(map[valkey.ADT]typeexp.ExpRec, len(recs)) for _, rec := range recs { env[rec.Key()] = rec } return env, nil } -func (dao *daoPgx) SelectRecsByVKs(uow db.UoW, expVKs []valkey.ADT) (_ []proctypeexp.ExpRec, err error) { +func (dao *daoPgx) SelectRecsByVKs(uow db.UoW, expVKs []valkey.ADT) (_ []typeexp.ExpRec, err error) { batch := pgx.Batch{} for _, expVK := range expVKs { batch.Queue(selectByID, valkey.ConvertToInt(expVK)) @@ -99,22 +99,22 @@ func (dao *daoPgx) SelectRecsByVKs(uow db.UoW, expVKs []valkey.ADT) (_ []proctyp defer func() { err = errors.Join(err, br.Close()) }() - var recs []proctypeexp.ExpRec + var recs []typeexp.ExpRec for _, expVK := range expVKs { vkAttr := slog.Any("expVK", expVK) rows, err := br.Query() if err != nil { dao.log.Error("query execution failed", vkAttr) } - dtos, err := pgx.CollectRows(rows, pgx.RowToStructByName[proctypeexp.StateDS]) + dtos, err := pgx.CollectRows(rows, pgx.RowToStructByName[typeexp.StateDS]) if err != nil { dao.log.Error("rows scanning failed", vkAttr) } if len(dtos) == 0 { dao.log.Error("entity selection failed", vkAttr) - return nil, proctypeexp.ErrDoesNotExist(expVK) + return nil, typeexp.ErrDoesNotExist(expVK) } - rec, err := dataToExpRec(proctypeexp.ExpRecDS{ExpVK: valkey.ConvertToInt(expVK), States: dtos}) + rec, err := dataToExpRec(typeexp.ExpRecDS{ExpVK: valkey.ConvertToInt(expVK), States: dtos}) if err != nil { dao.log.Error("model conversion failed", vkAttr) return nil, err diff --git a/proc/typeexp/adapter/qb_sqlbuilder.go b/proc/typeexp/adapter/qb_sqlbuilder.go index b06f7ba4..2b355192 100644 --- a/proc/typeexp/adapter/qb_sqlbuilder.go +++ b/proc/typeexp/adapter/qb_sqlbuilder.go @@ -3,7 +3,7 @@ package adapter import ( "github.com/huandu/go-sqlbuilder" - proctypeexp "orglang/go-engine/proc/typeexp/core" + typeexp "orglang/go-engine/proc/typeexp/core" ) type sqlBuilder struct { @@ -11,16 +11,16 @@ type sqlBuilder struct { } // for compilation purposes -func newQueryBuilder() proctypeexp.QueryBuilder { +func newQueryBuilder() typeexp.QueryBuilder { return new(sqlBuilder) } func newSQLBuilder() *sqlBuilder { - stateBuilder := sqlbuilder.NewStruct(new(proctypeexp.StateDS)).For(sqlbuilder.PostgreSQL) + stateBuilder := sqlbuilder.NewStruct(new(typeexp.StateDS)).For(sqlbuilder.PostgreSQL) return &sqlBuilder{stateBuilder} } -func (qb *sqlBuilder) InsertRec(rec proctypeexp.StateDS) (string, []any) { +func (qb *sqlBuilder) InsertRec(rec typeexp.StateDS) (string, []any) { return qb.stateBuilder.InsertInto(xactExps, rec). SQL("ON CONFLICT (exp_vk) DO NOTHING"). Build() diff --git a/proc/typeexp/adapter/qb_sqlbuilder_test.go b/proc/typeexp/adapter/qb_sqlbuilder_test.go index 9a7c69c1..ad08551d 100644 --- a/proc/typeexp/adapter/qb_sqlbuilder_test.go +++ b/proc/typeexp/adapter/qb_sqlbuilder_test.go @@ -4,19 +4,19 @@ import ( "reflect" "testing" - proctypeexp "orglang/go-engine/proc/typeexp/core" + typeexp "orglang/go-engine/proc/typeexp/core" ) func TestInsertRec(t *testing.T) { t.Parallel() qb := newSQLBuilder() - gotSQL, gotArgs := qb.InsertRec(proctypeexp.StateDS{}) + gotSQL, gotArgs := qb.InsertRec(typeexp.StateDS{}) wantSQL := "INSERT INTO pool_type_exps (exp_vk, sup_exp_vk, kind, spec) " + "VALUES ($1, $2, $3, $4) ON CONFLICT (exp_vk) DO NOTHING" if gotSQL != wantSQL { t.Errorf("got sql %q, want %q", gotSQL, wantSQL) } - wantArgs := []any{int64(0), int64(0), proctypeexp.ExpKindDS(0), proctypeexp.ExpSpecDS{}} + wantArgs := []any{int64(0), int64(0), typeexp.ExpKindDS(0), typeexp.ExpSpecDS{}} if !reflect.DeepEqual(gotArgs, wantArgs) { t.Errorf("got args %v, want %v", gotArgs, wantArgs) } diff --git a/proc/typeexp/adapter/tc.go b/proc/typeexp/adapter/tc.go index f955c3dc..a3dd6b82 100644 --- a/proc/typeexp/adapter/tc.go +++ b/proc/typeexp/adapter/tc.go @@ -8,69 +8,69 @@ import ( "orglang/go-engine/adt/uniqsym" "orglang/go-engine/adt/valkey" - "github.com/orglang/go-sdk/proc/typeexp" + sdktypeexp "github.com/orglang/go-sdk/proc/typeexp" - proctypeexp "orglang/go-engine/proc/typeexp/core" + typeexp "orglang/go-engine/proc/typeexp/core" ) -func MsgFromExpSpec(s proctypeexp.ExpSpec) typeexp.ExpSpec { +func MsgFromExpSpec(s typeexp.ExpSpec) sdktypeexp.ExpSpec { switch spec := s.(type) { - case proctypeexp.OneSpec: - return typeexp.ExpSpec{K: typeexp.One} - case proctypeexp.LinkSpec: - return typeexp.ExpSpec{ - K: typeexp.Link, - Link: &typeexp.LinkSpec{TypeQN: uniqsym.ConvertToString(spec.TypeQN)}} - case proctypeexp.TensorSpec: - return typeexp.ExpSpec{ - K: typeexp.Tensor, - Tensor: &typeexp.ProdSpec{ + case typeexp.OneSpec: + return sdktypeexp.ExpSpec{K: sdktypeexp.One} + case typeexp.LinkSpec: + return sdktypeexp.ExpSpec{ + K: sdktypeexp.Link, + Link: &sdktypeexp.LinkSpec{TypeQN: uniqsym.ConvertToString(spec.TypeQN)}} + case typeexp.TensorSpec: + return sdktypeexp.ExpSpec{ + K: sdktypeexp.Tensor, + Tensor: &sdktypeexp.ProdSpec{ Val: MsgFromExpSpec(spec.Val), Cont: MsgFromExpSpec(spec.Cont), }, } - case proctypeexp.LolliSpec: - return typeexp.ExpSpec{ - K: typeexp.Lolli, - Lolli: &typeexp.ProdSpec{ + case typeexp.LolliSpec: + return sdktypeexp.ExpSpec{ + K: sdktypeexp.Lolli, + Lolli: &sdktypeexp.ProdSpec{ Val: MsgFromExpSpec(spec.Val), Cont: MsgFromExpSpec(spec.Cont), }, } - case proctypeexp.WithSpec: - choices := make([]typeexp.ChoiceSpec, len(spec.Choices)) + case typeexp.WithSpec: + choices := make([]sdktypeexp.ChoiceSpec, len(spec.Choices)) for i, l := range maps.Keys(spec.Choices) { - choices[i] = typeexp.ChoiceSpec{ + choices[i] = sdktypeexp.ChoiceSpec{ LabQN: uniqsym.ConvertToString(l), Cont: MsgFromExpSpec(spec.Choices[l]), } } - return typeexp.ExpSpec{K: typeexp.With, With: &typeexp.SumSpec{Choices: choices}} - case proctypeexp.PlusSpec: - choices := make([]typeexp.ChoiceSpec, len(spec.Choices)) + return sdktypeexp.ExpSpec{K: sdktypeexp.With, With: &sdktypeexp.SumSpec{Choices: choices}} + case typeexp.PlusSpec: + choices := make([]sdktypeexp.ChoiceSpec, len(spec.Choices)) for i, l := range maps.Keys(spec.Choices) { - choices[i] = typeexp.ChoiceSpec{ + choices[i] = sdktypeexp.ChoiceSpec{ LabQN: uniqsym.ConvertToString(l), Cont: MsgFromExpSpec(spec.Choices[l]), } } - return typeexp.ExpSpec{K: typeexp.Plus, Plus: &typeexp.SumSpec{Choices: choices}} + return sdktypeexp.ExpSpec{K: sdktypeexp.Plus, Plus: &sdktypeexp.SumSpec{Choices: choices}} default: - panic(proctypeexp.ErrSpecTypeUnexpected(s)) + panic(typeexp.ErrSpecTypeUnexpected(s)) } } -func MsgToExpSpec(dto typeexp.ExpSpec) (proctypeexp.ExpSpec, error) { +func MsgToExpSpec(dto sdktypeexp.ExpSpec) (typeexp.ExpSpec, error) { switch dto.K { - case typeexp.One: - return proctypeexp.OneSpec{}, nil - case typeexp.Link: + case sdktypeexp.One: + return typeexp.OneSpec{}, nil + case sdktypeexp.Link: typeQN, err := uniqsym.ConvertFromString(dto.Link.TypeQN) if err != nil { return nil, err } - return proctypeexp.LinkSpec{TypeQN: typeQN}, nil - case typeexp.Tensor: + return typeexp.LinkSpec{TypeQN: typeQN}, nil + case sdktypeexp.Tensor: valES, err := MsgToExpSpec(dto.Tensor.Val) if err != nil { return nil, err @@ -79,8 +79,8 @@ func MsgToExpSpec(dto typeexp.ExpSpec) (proctypeexp.ExpSpec, error) { if err != nil { return nil, err } - return proctypeexp.TensorSpec{Val: valES, Cont: contES}, nil - case typeexp.Lolli: + return typeexp.TensorSpec{Val: valES, Cont: contES}, nil + case sdktypeexp.Lolli: valES, err := MsgToExpSpec(dto.Lolli.Val) if err != nil { return nil, err @@ -89,9 +89,9 @@ func MsgToExpSpec(dto typeexp.ExpSpec) (proctypeexp.ExpSpec, error) { if err != nil { return nil, err } - return proctypeexp.LolliSpec{Val: valES, Cont: contES}, nil - case typeexp.Plus: - choices := make(map[uniqsym.ADT]proctypeexp.ExpSpec, len(dto.Plus.Choices)) + return typeexp.LolliSpec{Val: valES, Cont: contES}, nil + case sdktypeexp.Plus: + choices := make(map[uniqsym.ADT]typeexp.ExpSpec, len(dto.Plus.Choices)) for _, ch := range dto.Plus.Choices { choice, err := MsgToExpSpec(ch.Cont) if err != nil { @@ -103,9 +103,9 @@ func MsgToExpSpec(dto typeexp.ExpSpec) (proctypeexp.ExpSpec, error) { } choices[label] = choice } - return proctypeexp.PlusSpec{Choices: choices}, nil - case typeexp.With: - choices := make(map[uniqsym.ADT]proctypeexp.ExpSpec, len(dto.With.Choices)) + return typeexp.PlusSpec{Choices: choices}, nil + case sdktypeexp.With: + choices := make(map[uniqsym.ADT]typeexp.ExpSpec, len(dto.With.Choices)) for _, ch := range dto.With.Choices { choice, err := MsgToExpSpec(ch.Cont) if err != nil { @@ -117,114 +117,114 @@ func MsgToExpSpec(dto typeexp.ExpSpec) (proctypeexp.ExpSpec, error) { } choices[label] = choice } - return proctypeexp.WithSpec{Choices: choices}, nil + return typeexp.WithSpec{Choices: choices}, nil default: - panic(typeexp.ErrKindUnexpected(dto.K)) + panic(sdktypeexp.ErrKindUnexpected(dto.K)) } } -func MsgFromExpRef(ref proctypeexp.ExpRef) typeexp.ExpRef { +func MsgFromExpRef(ref typeexp.ExpRef) sdktypeexp.ExpRef { expVK := valkey.ConvertToInt(ref.Key()) switch ref.(type) { - case proctypeexp.OneRef, proctypeexp.OneRec: - return typeexp.ExpRef{K: typeexp.One, ExpVK: expVK} - case proctypeexp.LinkRef, proctypeexp.LinkRec: - return typeexp.ExpRef{K: typeexp.Link, ExpVK: expVK} - case proctypeexp.TensorRef, proctypeexp.TensorRec: - return typeexp.ExpRef{K: typeexp.Tensor, ExpVK: expVK} - case proctypeexp.LolliRef, proctypeexp.LolliRec: - return typeexp.ExpRef{K: typeexp.Lolli, ExpVK: expVK} - case proctypeexp.PlusRef, proctypeexp.PlusRec: - return typeexp.ExpRef{K: typeexp.Plus, ExpVK: expVK} - case proctypeexp.WithRef, proctypeexp.WithRec: - return typeexp.ExpRef{K: typeexp.With, ExpVK: expVK} + case typeexp.OneRef, typeexp.OneRec: + return sdktypeexp.ExpRef{K: sdktypeexp.One, ExpVK: expVK} + case typeexp.LinkRef, typeexp.LinkRec: + return sdktypeexp.ExpRef{K: sdktypeexp.Link, ExpVK: expVK} + case typeexp.TensorRef, typeexp.TensorRec: + return sdktypeexp.ExpRef{K: sdktypeexp.Tensor, ExpVK: expVK} + case typeexp.LolliRef, typeexp.LolliRec: + return sdktypeexp.ExpRef{K: sdktypeexp.Lolli, ExpVK: expVK} + case typeexp.PlusRef, typeexp.PlusRec: + return sdktypeexp.ExpRef{K: sdktypeexp.Plus, ExpVK: expVK} + case typeexp.WithRef, typeexp.WithRec: + return sdktypeexp.ExpRef{K: sdktypeexp.With, ExpVK: expVK} default: - panic(proctypeexp.ErrRefTypeUnexpected(ref)) + panic(typeexp.ErrRefTypeUnexpected(ref)) } } -func MsgToExpRef(dto typeexp.ExpRef) (proctypeexp.ExpRef, error) { +func MsgToExpRef(dto sdktypeexp.ExpRef) (typeexp.ExpRef, error) { expVK, err := valkey.ConvertFromInt(dto.ExpVK) if err != nil { return nil, err } switch dto.K { - case typeexp.One: - return proctypeexp.OneRef{ExpVK: expVK}, nil - case typeexp.Link: - return proctypeexp.LinkRef{ExpVK: expVK}, nil - case typeexp.Tensor: - return proctypeexp.TensorRef{ExpVK: expVK}, nil - case typeexp.Lolli: - return proctypeexp.LolliRef{ExpVK: expVK}, nil - case typeexp.Plus: - return proctypeexp.PlusRef{ExpVK: expVK}, nil - case typeexp.With: - return proctypeexp.WithRef{ExpVK: expVK}, nil + case sdktypeexp.One: + return typeexp.OneRef{ExpVK: expVK}, nil + case sdktypeexp.Link: + return typeexp.LinkRef{ExpVK: expVK}, nil + case sdktypeexp.Tensor: + return typeexp.TensorRef{ExpVK: expVK}, nil + case sdktypeexp.Lolli: + return typeexp.LolliRef{ExpVK: expVK}, nil + case sdktypeexp.Plus: + return typeexp.PlusRef{ExpVK: expVK}, nil + case sdktypeexp.With: + return typeexp.WithRef{ExpVK: expVK}, nil default: - panic(typeexp.ErrKindUnexpected(dto.K)) + panic(sdktypeexp.ErrKindUnexpected(dto.K)) } } -func dataFromExpRef(ref proctypeexp.ExpRef) proctypeexp.ExpRefDS { +func dataFromExpRef(ref typeexp.ExpRef) typeexp.ExpRefDS { if ref == nil { panic("can't be null") } expVK := valkey.ConvertToInt(ref.Key()) switch ref.(type) { - case proctypeexp.OneRef, proctypeexp.OneRec: - return proctypeexp.ExpRefDS{K: proctypeexp.OneKind, ExpVK: expVK} - case proctypeexp.LinkRef, proctypeexp.LinkRec: - return proctypeexp.ExpRefDS{K: proctypeexp.LinkKind, ExpVK: expVK} - case proctypeexp.TensorRef, proctypeexp.TensorRec: - return proctypeexp.ExpRefDS{K: proctypeexp.TensorKind, ExpVK: expVK} - case proctypeexp.LolliRef, proctypeexp.LolliRec: - return proctypeexp.ExpRefDS{K: proctypeexp.LolliKind, ExpVK: expVK} - case proctypeexp.PlusRef, proctypeexp.PlusRec: - return proctypeexp.ExpRefDS{K: proctypeexp.PlusKind, ExpVK: expVK} - case proctypeexp.WithRef, proctypeexp.WithRec: - return proctypeexp.ExpRefDS{K: proctypeexp.WithKind, ExpVK: expVK} + case typeexp.OneRef, typeexp.OneRec: + return typeexp.ExpRefDS{K: typeexp.OneKind, ExpVK: expVK} + case typeexp.LinkRef, typeexp.LinkRec: + return typeexp.ExpRefDS{K: typeexp.LinkKind, ExpVK: expVK} + case typeexp.TensorRef, typeexp.TensorRec: + return typeexp.ExpRefDS{K: typeexp.TensorKind, ExpVK: expVK} + case typeexp.LolliRef, typeexp.LolliRec: + return typeexp.ExpRefDS{K: typeexp.LolliKind, ExpVK: expVK} + case typeexp.PlusRef, typeexp.PlusRec: + return typeexp.ExpRefDS{K: typeexp.PlusKind, ExpVK: expVK} + case typeexp.WithRef, typeexp.WithRec: + return typeexp.ExpRefDS{K: typeexp.WithKind, ExpVK: expVK} default: - panic(proctypeexp.ErrRefTypeUnexpected(ref)) + panic(typeexp.ErrRefTypeUnexpected(ref)) } } -func dataToExpRef(dto proctypeexp.ExpRefDS) (proctypeexp.ExpRef, error) { +func dataToExpRef(dto typeexp.ExpRefDS) (typeexp.ExpRef, error) { expVK, err := valkey.ConvertFromInt(dto.ExpVK) if err != nil { return nil, err } switch dto.K { - case proctypeexp.OneKind: - return proctypeexp.OneRef{ExpVK: expVK}, nil - case proctypeexp.LinkKind: - return proctypeexp.LinkRef{ExpVK: expVK}, nil - case proctypeexp.TensorKind: - return proctypeexp.TensorRef{ExpVK: expVK}, nil - case proctypeexp.LolliKind: - return proctypeexp.LolliRef{ExpVK: expVK}, nil - case proctypeexp.PlusKind: - return proctypeexp.PlusRef{ExpVK: expVK}, nil - case proctypeexp.WithKind: - return proctypeexp.WithRef{ExpVK: expVK}, nil + case typeexp.OneKind: + return typeexp.OneRef{ExpVK: expVK}, nil + case typeexp.LinkKind: + return typeexp.LinkRef{ExpVK: expVK}, nil + case typeexp.TensorKind: + return typeexp.TensorRef{ExpVK: expVK}, nil + case typeexp.LolliKind: + return typeexp.LolliRef{ExpVK: expVK}, nil + case typeexp.PlusKind: + return typeexp.PlusRef{ExpVK: expVK}, nil + case typeexp.WithKind: + return typeexp.WithRef{ExpVK: expVK}, nil default: panic(errUnexpectedKind(dto.K)) } } -func dataToExpRec(dto proctypeexp.ExpRecDS) (proctypeexp.ExpRec, error) { - states := make(map[int64]proctypeexp.StateDS, len(dto.States)) +func dataToExpRec(dto typeexp.ExpRecDS) (typeexp.ExpRec, error) { + states := make(map[int64]typeexp.StateDS, len(dto.States)) for _, dto := range dto.States { states[dto.ExpVK] = dto } return statesToExpRec(states, states[dto.ExpVK]) } -func dataFromExpRec(rec proctypeexp.ExpRec) proctypeexp.ExpRecDS { +func dataFromExpRec(rec typeexp.ExpRec) typeexp.ExpRecDS { if rec == nil { panic("can't be nil") } - dto := &proctypeexp.ExpRecDS{ + dto := &typeexp.ExpRecDS{ ExpVK: valkey.ConvertToInt(rec.Key()), States: nil, } @@ -232,21 +232,21 @@ func dataFromExpRec(rec proctypeexp.ExpRec) proctypeexp.ExpRecDS { return *dto } -func statesToExpRec(states map[int64]proctypeexp.StateDS, st proctypeexp.StateDS) (proctypeexp.ExpRec, error) { +func statesToExpRec(states map[int64]typeexp.StateDS, st typeexp.StateDS) (typeexp.ExpRec, error) { expVK, err := valkey.ConvertFromInt(st.ExpVK) if err != nil { return nil, err } switch st.K { - case proctypeexp.OneKind: - return proctypeexp.OneRec{ExpVK: expVK}, nil - case proctypeexp.LinkKind: + case typeexp.OneKind: + return typeexp.OneRec{ExpVK: expVK}, nil + case typeexp.LinkKind: typeQN, err := uniqsym.ConvertFromString(st.Spec.Link) if err != nil { return nil, err } - return proctypeexp.LinkRec{ExpVK: expVK, TypeQN: typeQN}, nil - case proctypeexp.TensorKind: + return typeexp.LinkRec{ExpVK: expVK, TypeQN: typeQN}, nil + case typeexp.TensorKind: b, err := statesToExpRec(states, states[st.Spec.Tensor.ValExpVK]) if err != nil { return nil, err @@ -255,8 +255,8 @@ func statesToExpRec(states map[int64]proctypeexp.StateDS, st proctypeexp.StateDS if err != nil { return nil, err } - return proctypeexp.TensorRec{ExpVK: expVK, Val: b, Cont: c}, nil - case proctypeexp.LolliKind: + return typeexp.TensorRec{ExpVK: expVK, Val: b, Cont: c}, nil + case typeexp.LolliKind: y, err := statesToExpRec(states, states[st.Spec.Lolli.ValExpVK]) if err != nil { return nil, err @@ -265,9 +265,9 @@ func statesToExpRec(states map[int64]proctypeexp.StateDS, st proctypeexp.StateDS if err != nil { return nil, err } - return proctypeexp.LolliRec{ExpVK: expVK, Val: y, Cont: z}, nil - case proctypeexp.PlusKind: - choices := make(map[uniqsym.ADT]proctypeexp.ExpRec, len(st.Spec.Plus)) + return typeexp.LolliRec{ExpVK: expVK, Val: y, Cont: z}, nil + case typeexp.PlusKind: + choices := make(map[uniqsym.ADT]typeexp.ExpRec, len(st.Spec.Plus)) for _, ch := range st.Spec.Plus { choice, err := statesToExpRec(states, states[ch.ContExpVK]) if err != nil { @@ -279,9 +279,9 @@ func statesToExpRec(states map[int64]proctypeexp.StateDS, st proctypeexp.StateDS } choices[label] = choice } - return proctypeexp.PlusRec{ExpVK: expVK, Choices: choices}, nil - case proctypeexp.WithKind: - choices := make(map[uniqsym.ADT]proctypeexp.ExpRec, len(st.Spec.With)) + return typeexp.PlusRec{ExpVK: expVK, Choices: choices}, nil + case typeexp.WithKind: + choices := make(map[uniqsym.ADT]typeexp.ExpRec, len(st.Spec.With)) for _, ch := range st.Spec.With { choice, err := statesToExpRec(states, states[ch.ContExpVK]) if err != nil { @@ -293,89 +293,89 @@ func statesToExpRec(states map[int64]proctypeexp.StateDS, st proctypeexp.StateDS } choices[label] = choice } - return proctypeexp.WithRec{ExpVK: expVK, Choices: choices}, nil + return typeexp.WithRec{ExpVK: expVK, Choices: choices}, nil default: panic(errUnexpectedKind(st.K)) } } -func statesFromExpRec(fromID int64, r proctypeexp.ExpRec, dto *proctypeexp.ExpRecDS) int64 { +func statesFromExpRec(fromID int64, r typeexp.ExpRec, dto *typeexp.ExpRecDS) int64 { expVK := valkey.ConvertToInt(r.Key()) switch rec := r.(type) { - case proctypeexp.OneRec: - st := proctypeexp.StateDS{ExpVK: expVK, K: proctypeexp.OneKind, SupExpVK: fromID} + case typeexp.OneRec: + st := typeexp.StateDS{ExpVK: expVK, K: typeexp.OneKind, SupExpVK: fromID} dto.States = append(dto.States, st) return expVK - case proctypeexp.LinkRec: - st := proctypeexp.StateDS{ + case typeexp.LinkRec: + st := typeexp.StateDS{ ExpVK: expVK, - K: proctypeexp.LinkKind, + K: typeexp.LinkKind, SupExpVK: fromID, - Spec: proctypeexp.ExpSpecDS{ + Spec: typeexp.ExpSpecDS{ Link: uniqsym.ConvertToString(rec.TypeQN), }, } dto.States = append(dto.States, st) return expVK - case proctypeexp.TensorRec: + case typeexp.TensorRec: val := statesFromExpRec(expVK, rec.Val, dto) cont := statesFromExpRec(expVK, rec.Cont, dto) - st := proctypeexp.StateDS{ + st := typeexp.StateDS{ ExpVK: expVK, - K: proctypeexp.TensorKind, + K: typeexp.TensorKind, SupExpVK: fromID, - Spec: proctypeexp.ExpSpecDS{ - Tensor: &proctypeexp.ProdDS{ValExpVK: val, ContExpVK: cont}, + Spec: typeexp.ExpSpecDS{ + Tensor: &typeexp.ProdDS{ValExpVK: val, ContExpVK: cont}, }, } dto.States = append(dto.States, st) return expVK - case proctypeexp.LolliRec: + case typeexp.LolliRec: val := statesFromExpRec(expVK, rec.Val, dto) cont := statesFromExpRec(expVK, rec.Cont, dto) - st := proctypeexp.StateDS{ + st := typeexp.StateDS{ ExpVK: expVK, - K: proctypeexp.LolliKind, + K: typeexp.LolliKind, SupExpVK: fromID, - Spec: proctypeexp.ExpSpecDS{ - Lolli: &proctypeexp.ProdDS{ValExpVK: val, ContExpVK: cont}, + Spec: typeexp.ExpSpecDS{ + Lolli: &typeexp.ProdDS{ValExpVK: val, ContExpVK: cont}, }, } dto.States = append(dto.States, st) return expVK - case proctypeexp.PlusRec: - var choices []proctypeexp.SumDS + case typeexp.PlusRec: + var choices []typeexp.SumDS for label, choice := range rec.Choices { cont := statesFromExpRec(expVK, choice, dto) - choices = append(choices, proctypeexp.SumDS{LabQN: uniqsym.ConvertToString(label), ContExpVK: cont}) + choices = append(choices, typeexp.SumDS{LabQN: uniqsym.ConvertToString(label), ContExpVK: cont}) } - st := proctypeexp.StateDS{ + st := typeexp.StateDS{ ExpVK: expVK, - K: proctypeexp.PlusKind, + K: typeexp.PlusKind, SupExpVK: fromID, - Spec: proctypeexp.ExpSpecDS{Plus: choices}, + Spec: typeexp.ExpSpecDS{Plus: choices}, } dto.States = append(dto.States, st) return expVK - case proctypeexp.WithRec: - var choices []proctypeexp.SumDS + case typeexp.WithRec: + var choices []typeexp.SumDS for label, choice := range rec.Choices { cont := statesFromExpRec(expVK, choice, dto) - choices = append(choices, proctypeexp.SumDS{LabQN: uniqsym.ConvertToString(label), ContExpVK: cont}) + choices = append(choices, typeexp.SumDS{LabQN: uniqsym.ConvertToString(label), ContExpVK: cont}) } - st := proctypeexp.StateDS{ + st := typeexp.StateDS{ ExpVK: expVK, - K: proctypeexp.WithKind, + K: typeexp.WithKind, SupExpVK: fromID, - Spec: proctypeexp.ExpSpecDS{With: choices}, + Spec: typeexp.ExpSpecDS{With: choices}, } dto.States = append(dto.States, st) return expVK default: - panic(proctypeexp.ErrRecTypeUnexpected(r)) + panic(typeexp.ErrRecTypeUnexpected(r)) } } -func errUnexpectedKind(k proctypeexp.ExpKindDS) error { +func errUnexpectedKind(k typeexp.ExpKindDS) error { return fmt.Errorf("unexpected kind %v", k) } diff --git a/proc/typeexp/adapter/tc_goverter.go b/proc/typeexp/adapter/tc_goverter.go index 698a5206..ebc71e9d 100644 --- a/proc/typeexp/adapter/tc_goverter.go +++ b/proc/typeexp/adapter/tc_goverter.go @@ -1,9 +1,9 @@ package adapter import ( - "github.com/orglang/go-sdk/proc/typeexp" + sdktypeexp "github.com/orglang/go-sdk/proc/typeexp" - proctypeexp "orglang/go-engine/proc/typeexp/core" + typeexp "orglang/go-engine/proc/typeexp/core" ) // goverter:variables @@ -12,8 +12,8 @@ import ( // goverter:extend orglang/go-engine/adt/seqnum:Convert.* // goverter:extend Msg.* var ( - MsgFromExpRefs func([]proctypeexp.ExpRef) []typeexp.ExpRef - MsgToExpRefs func([]typeexp.ExpRef) ([]proctypeexp.ExpRef, error) + MsgFromExpRefs func([]typeexp.ExpRef) []sdktypeexp.ExpRef + MsgToExpRefs func([]sdktypeexp.ExpRef) ([]typeexp.ExpRef, error) ) // goverter:variables @@ -22,8 +22,8 @@ var ( // goverter:extend orglang/go-engine/adt/seqnum:Convert.* // goverter:extend data.* var ( - DataToExpRefs func([]proctypeexp.ExpRefDS) ([]proctypeexp.ExpRef, error) - DataFromExpRefs func([]proctypeexp.ExpRef) []proctypeexp.ExpRefDS - DataToExpRecs func([]proctypeexp.ExpRecDS) ([]proctypeexp.ExpRec, error) - DataFromExpRecs func([]proctypeexp.ExpRec) []proctypeexp.ExpRecDS + DataToExpRefs func([]typeexp.ExpRefDS) ([]typeexp.ExpRef, error) + DataFromExpRefs func([]typeexp.ExpRef) []typeexp.ExpRefDS + DataToExpRecs func([]typeexp.ExpRecDS) ([]typeexp.ExpRec, error) + DataFromExpRecs func([]typeexp.ExpRec) []typeexp.ExpRecDS ) From 6cf19438f2b47693558b7c4d20143ea9111994f3 Mon Sep 17 00:00:00 2001 From: Pavel Vetokhin Date: Sun, 11 Oct 2026 14:20:18 +0300 Subject: [PATCH 3/4] refactor: split commexch/prog layers (adapter/core) and fix build/lint --- proc/commexch/{ => adapter}/di_fx.go | 0 proc/commexch/{ => adapter}/ds_pgx.go | 0 proc/commexch/{ => core}/core.go | 0 proc/commexch/{ => core}/ds.go | 0 prog/{ => adapter}/me_echo.go | 0 prog/{ => adapter}/tc.go | 0 prog/{ => core}/core.go | 0 7 files changed, 0 insertions(+), 0 deletions(-) rename proc/commexch/{ => adapter}/di_fx.go (100%) rename proc/commexch/{ => adapter}/ds_pgx.go (100%) rename proc/commexch/{ => core}/core.go (100%) rename proc/commexch/{ => core}/ds.go (100%) rename prog/{ => adapter}/me_echo.go (100%) rename prog/{ => adapter}/tc.go (100%) rename prog/{ => core}/core.go (100%) diff --git a/proc/commexch/di_fx.go b/proc/commexch/adapter/di_fx.go similarity index 100% rename from proc/commexch/di_fx.go rename to proc/commexch/adapter/di_fx.go diff --git a/proc/commexch/ds_pgx.go b/proc/commexch/adapter/ds_pgx.go similarity index 100% rename from proc/commexch/ds_pgx.go rename to proc/commexch/adapter/ds_pgx.go diff --git a/proc/commexch/core.go b/proc/commexch/core/core.go similarity index 100% rename from proc/commexch/core.go rename to proc/commexch/core/core.go diff --git a/proc/commexch/ds.go b/proc/commexch/core/ds.go similarity index 100% rename from proc/commexch/ds.go rename to proc/commexch/core/ds.go diff --git a/prog/me_echo.go b/prog/adapter/me_echo.go similarity index 100% rename from prog/me_echo.go rename to prog/adapter/me_echo.go diff --git a/prog/tc.go b/prog/adapter/tc.go similarity index 100% rename from prog/tc.go rename to prog/adapter/tc.go diff --git a/prog/core.go b/prog/core/core.go similarity index 100% rename from prog/core.go rename to prog/core/core.go From 2b7280993135bc104cc08a80cfb267562f9453a0 Mon Sep 17 00:00:00 2001 From: Pavel Vetokhin Date: Tue, 13 Oct 2026 19:29:07 +0300 Subject: [PATCH 4/4] fix: apply stashed fixes for adapter/core split (imports, packages) --- app/main.go | 6 ++++-- pool/commturn/core.go | 3 +-- pool/termexp/core/ds.go | 3 +-- proc/commexch/adapter/di_fx.go | 6 ++++-- proc/commexch/adapter/ds_pgx.go | 12 +++++++----- proc/commexch/core/core.go | 2 +- proc/commexch/core/ds.go | 2 +- proc/compexec/core.go | 2 +- prog/adapter/me_echo.go | 8 +++++--- prog/adapter/tc.go | 15 ++++++++------- prog/core/core.go | 2 +- 11 files changed, 34 insertions(+), 27 deletions(-) diff --git a/app/main.go b/app/main.go index 9bd65db3..30a942b9 100644 --- a/app/main.go +++ b/app/main.go @@ -16,7 +16,8 @@ import ( pooltermdef "orglang/go-engine/pool/termdef" pooltypedef "orglang/go-engine/pool/typedef/adapter" pooltypeexp "orglang/go-engine/pool/typeexp/adapter" - proccommexch "orglang/go-engine/proc/commexch" + proccommexchadapter "orglang/go-engine/proc/commexch/adapter" + "orglang/go-engine/proc/compexec" "orglang/go-engine/proc/termdec" termdef "orglang/go-engine/proc/termdef/adapter" @@ -44,7 +45,8 @@ func main() { compvar.Module, typedef.Module, typeexp.Module, - proccommexch.Module, + + proccommexchadapter.Module, termdef.Module, termdec.Module, compexec.Module, diff --git a/pool/commturn/core.go b/pool/commturn/core.go index 0d6ee98f..c5bb1f18 100644 --- a/pool/commturn/core.go +++ b/pool/commturn/core.go @@ -16,8 +16,7 @@ import ( "orglang/go-engine/proc/termdec" ) -type API interface { -} +type API any // step (aka Sem) type TurnRec interface { diff --git a/pool/termexp/core/ds.go b/pool/termexp/core/ds.go index 1d6153ab..b601863c 100644 --- a/pool/termexp/core/ds.go +++ b/pool/termexp/core/ds.go @@ -1,7 +1,6 @@ package core -type Repo interface { -} +type Repo any type ExpSpecDS struct { K ExpKind `json:"k"` diff --git a/proc/commexch/adapter/di_fx.go b/proc/commexch/adapter/di_fx.go index cfa93862..f336e6a7 100644 --- a/proc/commexch/adapter/di_fx.go +++ b/proc/commexch/adapter/di_fx.go @@ -1,11 +1,13 @@ -package commexch +package adapter import ( "go.uber.org/fx" + + corecommexch "orglang/go-engine/proc/commexch/core" ) var Module = fx.Module("proc/commexch", fx.Provide( - fx.Annotate(newDaoPgx, fx.As(new(Repo))), + fx.Annotate(newDaoPgx, fx.As(new(corecommexch.Repo))), ), ) diff --git a/proc/commexch/adapter/ds_pgx.go b/proc/commexch/adapter/ds_pgx.go index ff26b01e..4c2b82de 100644 --- a/proc/commexch/adapter/ds_pgx.go +++ b/proc/commexch/adapter/ds_pgx.go @@ -1,4 +1,4 @@ -package commexch +package adapter import ( "log/slog" @@ -6,6 +6,8 @@ import ( "orglang/go-engine/adt/uniqsym" "orglang/go-engine/lib/db" "reflect" + + corecommexch "orglang/go-engine/proc/commexch/core" ) type daoPgx struct { @@ -18,11 +20,11 @@ func newDaoPgx(log *slog.Logger) *daoPgx { } // for compilation purposes -func newRepo() Repo { +func newRepo() corecommexch.Repo { return new(daoPgx) } -func (dao *daoPgx) AddRec(db.UoW, ExchRec) error { +func (dao *daoPgx) AddRec(db.UoW, corecommexch.ExchRec) error { panic("unimplemented") } @@ -30,10 +32,10 @@ func (dao *daoPgx) GetRefsByQNs(db.UoW, []uniqsym.ADT) (map[uniqsym.ADT]commsem. panic("unimplemented") } -func (dao *daoPgx) GetSnapByQry(db.UoW, ExchQry) (ExchSnap, error) { +func (dao *daoPgx) GetSnapByQry(db.UoW, corecommexch.ExchQry) (corecommexch.ExchSnap, error) { panic("unimplemented") } -func (dao *daoPgx) Modifyec(db.UoW, ExchMod) error { +func (dao *daoPgx) Modifyec(db.UoW, corecommexch.ExchMod) error { panic("unimplemented") } diff --git a/proc/commexch/core/core.go b/proc/commexch/core/core.go index d2054305..ef0a10d1 100644 --- a/proc/commexch/core/core.go +++ b/proc/commexch/core/core.go @@ -1,4 +1,4 @@ -package commexch +package core import ( "orglang/go-engine/adt/commsem" diff --git a/proc/commexch/core/ds.go b/proc/commexch/core/ds.go index b8c2133a..4dee2c6b 100644 --- a/proc/commexch/core/ds.go +++ b/proc/commexch/core/ds.go @@ -1,4 +1,4 @@ -package commexch +package core import ( "orglang/go-engine/lib/db" diff --git a/proc/compexec/core.go b/proc/compexec/core.go index 5023f02f..20dbbef2 100644 --- a/proc/compexec/core.go +++ b/proc/compexec/core.go @@ -19,7 +19,7 @@ import ( "orglang/go-engine/adt/symbol" "orglang/go-engine/adt/uniqsym" "orglang/go-engine/adt/valkey" - "orglang/go-engine/proc/commexch" + commexch "orglang/go-engine/proc/commexch/core" commturn "orglang/go-engine/proc/commturn/core" compstep "orglang/go-engine/proc/compstep/core" "orglang/go-engine/proc/termdec" diff --git a/prog/adapter/me_echo.go b/prog/adapter/me_echo.go index e8f6fb30..50b5ab60 100644 --- a/prog/adapter/me_echo.go +++ b/prog/adapter/me_echo.go @@ -1,4 +1,4 @@ -package prog +package adapter import ( "io" @@ -8,14 +8,16 @@ import ( "github.com/labstack/echo/v4" sdkprog "github.com/orglang/go-sdk/prog" + + coreprog "orglang/go-engine/prog/core" ) type controllerEcho struct { - api API + api coreprog.API log *slog.Logger } -func newControllerEcho(a API, l *slog.Logger) *controllerEcho { +func newControllerEcho(a coreprog.API, l *slog.Logger) *controllerEcho { name := slog.String("name", reflect.TypeFor[controllerEcho]().Name()) return &controllerEcho{a, l.With(name)} } diff --git a/prog/adapter/tc.go b/prog/adapter/tc.go index 83b97238..03788dcc 100644 --- a/prog/adapter/tc.go +++ b/prog/adapter/tc.go @@ -1,34 +1,35 @@ -package prog +package adapter import ( "fmt" sdkpooltypedef "github.com/orglang/go-sdk/pool/typedef" sdkproctypedef "github.com/orglang/go-sdk/proc/typedef" - "github.com/orglang/go-sdk/prog" + sdkprog "github.com/orglang/go-sdk/prog" pooltypedef "orglang/go-engine/pool/typedef/adapter" proctypedef "orglang/go-engine/proc/typedef/adapter" + coreprog "orglang/go-engine/prog/core" ) -func MsgToSpec(dto prog.Spec) (Spec, error) { - spec := Spec{} +func MsgToSpec(dto sdkprog.Spec) (coreprog.Spec, error) { + spec := coreprog.Spec{} for _, msgExp := range dto.Exps { switch msgExp := msgExp.(type) { case sdkpooltypedef.DefSpec: poolDef, convErr := pooltypedef.MsgToDefSpec(msgExp) if convErr != nil { - return Spec{}, convErr + return coreprog.Spec{}, convErr } spec.Pools = append(spec.Pools, poolDef) case sdkproctypedef.DefSpec: procDef, convErr := proctypedef.MsgToDefSpec(msgExp) if convErr != nil { - return Spec{}, convErr + return coreprog.Spec{}, convErr } spec.Procs = append(spec.Procs, procDef) default: - return Spec{}, fmt.Errorf("unsupported program expression: %T", msgExp) + return coreprog.Spec{}, fmt.Errorf("unsupported program expression: %T", msgExp) } } return spec, nil diff --git a/prog/core/core.go b/prog/core/core.go index 3dedbcd2..2e83f4b7 100644 --- a/prog/core/core.go +++ b/prog/core/core.go @@ -1,4 +1,4 @@ -package prog +package core import ( "log/slog"