Add compactor and marshal func

This commit is contained in:
Melody Becker 2025-04-09 14:52:37 +02:00
parent 45fa095a15
commit dedb3faf8c

View file

@ -1,6 +1,7 @@
package goap
import (
"encoding/json"
"fmt"
"slices"
@ -155,3 +156,21 @@ func FindAttribute[T BaseApChain](object BaseApChain) (T, bool) {
}
return obj, true
}
func Compact(chain BaseApChain, ldContext map[string]any) (map[string]any, error) {
chainMap := chain.MarshalToMap()
proc := ld.NewJsonLdProcessor()
options := ld.NewJsonLdOptions("")
return proc.Compact(chainMap, ldContext, options)
}
func Marshal(chain BaseApChain, ldContext map[string]any) ([]byte, error) {
chainMap := chain.MarshalToMap()
proc := ld.NewJsonLdProcessor()
options := ld.NewJsonLdOptions("")
compacted, err := proc.Compact(chainMap, ldContext, options)
if err != nil {
return nil, err
}
return json.Marshal(compacted)
}