mirror of
https://codeberg.org/scip/tablizer.git
synced 2025-12-19 21:41:02 +01:00
added
This commit is contained in:
33
vendor/github.com/glycerine/zygomys/zygo/rawutils.go
generated
vendored
Normal file
33
vendor/github.com/glycerine/zygomys/zygo/rawutils.go
generated
vendored
Normal file
@@ -0,0 +1,33 @@
|
||||
package zygo
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
)
|
||||
|
||||
func MakeRaw(args []Sexp) (*SexpRaw, error) {
|
||||
raw := make([]byte, 0)
|
||||
for i := 0; i < len(args); i++ {
|
||||
switch e := args[i].(type) {
|
||||
case *SexpStr:
|
||||
a := []byte(e.S)
|
||||
raw = append(raw, a...)
|
||||
default:
|
||||
return &SexpRaw{},
|
||||
fmt.Errorf("raw takes only string arguments. We see %T: '%v'", e, e)
|
||||
}
|
||||
}
|
||||
return &SexpRaw{Val: raw}, nil
|
||||
}
|
||||
|
||||
func RawToStringFunction(env *Zlisp, name string, args []Sexp) (Sexp, error) {
|
||||
if len(args) != 1 {
|
||||
return SexpNull, WrongNargs
|
||||
}
|
||||
|
||||
switch t := args[0].(type) {
|
||||
case *SexpRaw:
|
||||
return &SexpStr{S: string(t.Val)}, nil
|
||||
}
|
||||
return SexpNull, errors.New("argument must be raw")
|
||||
}
|
||||
Reference in New Issue
Block a user