Adds comprehensive docstrings and runnable examples to all public APIs in the `crypt`, `enchantrix`, and `trix` packages. This change is intended to bring the project's documentation to a production-ready standard and to provide high-quality, verifiable examples for the official Go documentation website.
93 lines
2.2 KiB
Go
93 lines
2.2 KiB
Go
package trix_test
|
|
|
|
import (
|
|
"fmt"
|
|
"log"
|
|
|
|
"github.com/Snider/Enchantrix/pkg/crypt"
|
|
"github.com/Snider/Enchantrix/pkg/trix"
|
|
)
|
|
|
|
func ExampleEncode() {
|
|
t := &trix.Trix{
|
|
Header: map[string]interface{}{"author": "Jules"},
|
|
Payload: []byte("Hello, Trix!"),
|
|
}
|
|
encoded, err := trix.Encode(t, "TRIX", nil)
|
|
if err != nil {
|
|
log.Fatalf("Encode failed: %v", err)
|
|
}
|
|
fmt.Printf("Encoded data is not empty: %v\n", len(encoded) > 0)
|
|
// Output:
|
|
// Encoded data is not empty: true
|
|
}
|
|
|
|
func ExampleDecode() {
|
|
t := &trix.Trix{
|
|
Header: map[string]interface{}{"author": "Jules"},
|
|
Payload: []byte("Hello, Trix!"),
|
|
}
|
|
encoded, err := trix.Encode(t, "TRIX", nil)
|
|
if err != nil {
|
|
log.Fatalf("Encode failed: %v", err)
|
|
}
|
|
decoded, err := trix.Decode(encoded, "TRIX", nil)
|
|
if err != nil {
|
|
log.Fatalf("Decode failed: %v", err)
|
|
}
|
|
fmt.Printf("Decoded payload: %s\n", decoded.Payload)
|
|
fmt.Printf("Decoded header: %v\n", decoded.Header)
|
|
// Output:
|
|
// Decoded payload: Hello, Trix!
|
|
// Decoded header: map[author:Jules]
|
|
}
|
|
|
|
func ExampleTrix_Pack() {
|
|
t := &trix.Trix{
|
|
Payload: []byte("secret message"),
|
|
InSigils: []string{"base64", "reverse"},
|
|
}
|
|
err := t.Pack()
|
|
if err != nil {
|
|
log.Fatalf("Pack failed: %v", err)
|
|
}
|
|
fmt.Printf("Packed payload: %s\n", t.Payload)
|
|
// Output:
|
|
// Packed payload: =U2ZhN3cl1GI0VmcjV2c
|
|
}
|
|
|
|
func ExampleTrix_Unpack() {
|
|
t := &trix.Trix{
|
|
Payload: []byte("=U2ZhN3cl1GI0VmcjV2c"),
|
|
OutSigils: []string{"base64", "reverse"},
|
|
}
|
|
err := t.Unpack()
|
|
if err != nil {
|
|
log.Fatalf("Unpack failed: %v", err)
|
|
}
|
|
fmt.Printf("Unpacked payload: %s\n", t.Payload)
|
|
// Output:
|
|
// Unpacked payload: secret message
|
|
}
|
|
|
|
func ExampleTrix_Pack_checksum() {
|
|
t := &trix.Trix{
|
|
Header: map[string]interface{}{},
|
|
Payload: []byte("secret message"),
|
|
InSigils: []string{"base64", "reverse"},
|
|
ChecksumAlgo: crypt.SHA256,
|
|
}
|
|
encoded, err := trix.Encode(t, "TRIX", nil)
|
|
if err != nil {
|
|
log.Fatalf("Encode failed: %v", err)
|
|
}
|
|
decoded, err := trix.Decode(encoded, "TRIX", nil)
|
|
if err != nil {
|
|
log.Fatalf("Decode failed: %v", err)
|
|
}
|
|
fmt.Printf("Decoded payload: %s\n", decoded.Payload)
|
|
fmt.Printf("Checksum verified: %v\n", decoded.Header["checksum"] != nil)
|
|
// Output:
|
|
// Decoded payload: secret message
|
|
// Checksum verified: true
|
|
}
|