forked from rosa/hakurei
internal/rosa/package: migrate many libraries
This also adds more string helpers. Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user