Skip to content
go-libfossil Artifact [13b504ed47]
Login

Artifact [13b504ed47]

Artifact 13b504ed476a81c01f61ed384fdcf010ccd2e9f439dd115ab6c1a1ceeb0432ba:


package xfer_test

import (
	"fmt"

	"github.com/danmestas/go-libfossil/internal/xfer"
)

func ExampleMessage_Encode() {
	msg := &xfer.Message{
		Cards: []xfer.Card{
			&xfer.PushCard{ProjectCode: "abc123", ServerCode: "def456"},
			&xfer.PullCard{ProjectCode: "abc123", ServerCode: "def456"},
			&xfer.IGotCard{UUID: "aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d"},
		},
	}

	wire, err := msg.Encode()
	if err != nil {
		fmt.Println("error:", err)
		return
	}

	// Wire format is zlib-compressed xfer cards.
	fmt.Printf("compressed: %v\n", len(wire) > 0)

	// Decode round-trips back to a Message.
	decoded, err := xfer.Decode(wire, xfer.ContentTypeCompressed)
	if err != nil {
		fmt.Println("error:", err)
		return
	}
	fmt.Printf("cards: %d\n", len(decoded.Cards))
	// Output:
	// compressed: true
	// cards: 3
}