internal/rosa/package: migrate many libraries

This also adds more string helpers.

Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
2026-05-20 03:14:11 +09:00
parent 96abf266dd
commit ef414ab01a
36 changed files with 479 additions and 595 deletions

View File

@@ -477,6 +477,49 @@ func (s *S) getFrame() azalea.Frame {
// library functions
k("replace"): {F: func(
args azalea.FArgs,
) (v any, set bool, err error) {
var _s, _old, _new string
var n int
if err = args.Apply(map[unique.Handle[azalea.Ident]]any{
k("s"): &_s,
k("old"): &_old,
k("new"): &_new,
k("n"): &n,
}); err != nil {
return
}
if n < 0 {
n = 0
} else if n == 0 {
n = -1
}
v = strings.Replace(_s, _old, _new, n)
set = true
return
}},
k("slice"): {F: func(
args azalea.FArgs,
) (v any, set bool, err error) {
var elems []string
var start, end int64
if err = args.Apply(map[unique.Handle[azalea.Ident]]any{
k("elems"): &elems,
k("start"): &start,
k("end"): &end,
}); err != nil {
return
}
v = elems[start:end]
set = true
return
}},
k("join"): {F: func(
args azalea.FArgs,
) (v any, set bool, err error) {