MCPcopy Create free account
hub / github.com/GoMudEngine/GoMud / WriteSection

Method WriteSection

internal/copyover/copyover.go:32–52  ·  view source on GitHub ↗

WriteSection serializes v as JSON and writes it as a named section.

(name string, v any)

Source from the content-addressed store, hash-verified

30
31// WriteSection serializes v as JSON and writes it as a named section.
32func (e *Encoder) WriteSection(name string, v any) error {
33 data, err := json.Marshal(v)
34 if err != nil {
35 return fmt.Errorf("copyover: marshal section %q: %w", name, err)
36 }
37
38 nameBytes := []byte(name)
39 if err := binary.Write(e.w, binary.BigEndian, uint16(len(nameBytes))); err != nil {
40 return fmt.Errorf("copyover: write name length for %q: %w", name, err)
41 }
42 if _, err := e.w.Write(nameBytes); err != nil {
43 return fmt.Errorf("copyover: write name for %q: %w", name, err)
44 }
45 if err := binary.Write(e.w, binary.BigEndian, uint32(len(data))); err != nil {
46 return fmt.Errorf("copyover: write data length for %q: %w", name, err)
47 }
48 if _, err := e.w.Write(data); err != nil {
49 return fmt.Errorf("copyover: write data for %q: %w", name, err)
50 }
51 return nil
52}
53
54// Decoder reads named sections from a stream.
55type Decoder struct {

Callers 9

CopyoverSaveMethod · 0.80
CopyoverSaveMethod · 0.80
CopyoverSaveMethod · 0.80
CopyoverSaveMethod · 0.80
CopyoverSaveMethod · 0.80
CopyoverSaveMethod · 0.80
CopyoverSaveMethod · 0.80

Calls 1

WriteMethod · 0.65

Tested by 3

CopyoverSaveMethod · 0.64