MCPcopy
hub / github.com/dgraph-io/dgraph / encode

Method encode

query/outputnode.go:775–849  ·  view source on GitHub ↗
(fj fastJsonNode)

Source from the content-addressed store, hash-verified

773}
774
775func (enc *encoder) encode(fj fastJsonNode) error {
776 child := enc.children(fj)
777 // This is a scalar value.
778 if child == nil {
779 val, err := enc.getScalarVal(fj)
780 if err != nil {
781 return err
782 }
783 _, err = enc.buf.Write(val)
784 return err
785 }
786
787 // This is an internal node.
788 if _, err := enc.buf.WriteRune('{'); err != nil {
789 return err
790 }
791 cnt := 0
792 var cur, next fastJsonNode
793 for child != nil {
794 cnt++
795 validNext := false
796 cur = child
797 if cur.next != nil {
798 next = cur.next
799 validNext = true
800 }
801
802 if validNext && enc.getAttr(cur) == enc.getAttr(next) {
803 if cnt == 1 {
804 if err := enc.writeKey(cur); err != nil {
805 return err
806 }
807 if _, err := enc.buf.WriteRune('['); err != nil {
808 return err
809 }
810 }
811 if err := enc.encode(cur); err != nil {
812 return err
813 }
814 } else {
815 if cnt == 1 {
816 if err := enc.writeKey(cur); err != nil {
817 return err
818 }
819 if enc.getList(cur) {
820 if _, err := enc.buf.WriteRune('['); err != nil {
821 return err
822 }
823 }
824 }
825 if err := enc.encode(cur); err != nil {
826 return err
827 }
828 if cnt > 1 || enc.getList(cur) {
829 if _, err := enc.buf.WriteRune(']'); err != nil {
830 return err
831 }
832 }

Callers 4

TestEncodeFunction · 0.45
toDqlJSONMethod · 0.45
toGraphqlJSONMethod · 0.45
TestEncodeMemoryFunction · 0.45

Calls 6

childrenMethod · 0.95
getScalarValMethod · 0.95
getAttrMethod · 0.95
writeKeyMethod · 0.95
getListMethod · 0.95
WriteMethod · 0.65

Tested by 2

TestEncodeFunction · 0.36
TestEncodeMemoryFunction · 0.36