docs: codec

This commit is contained in:
2026-02-07 20:31:41 -05:00
parent 1f486875fd
commit b9c0d5a6c7
3 changed files with 13 additions and 1 deletions

View File

@@ -11,7 +11,7 @@ func LambdaEngineList() *cobra.Command {
Use: "list", Use: "list",
Aliases: []string{"ls"}, Aliases: []string{"ls"},
Short: "List available engines", Short: "List available engines",
RunE: func(cmd *cobra.Command, args []string) error { RunE: func(*cobra.Command, []string) error {
r := GetRegistry() r := GetRegistry()
for engine := range r.ListEngines() { for engine := range r.ListEngines() {

View File

@@ -1,8 +1,20 @@
// Package codec defines processes to convert between different representations
// of lambda calculus, and serialize the different representations.
package codec package codec
// A Conversion is a function that turns one representation into another.
// Returns an error if the input expression cannot be converted.
type Conversion[T, U any] = func(T) (U, error) type Conversion[T, U any] = func(T) (U, error)
// A Codec is an object that can serialize/deserialize one type of
// representation. It is assumed that for any x ∋ T, Decode(Encode(x)) = x.
type Codec[T any] interface { type Codec[T any] interface {
// Encode takes an expression, and returns its serialized format, as a
// string. Returns an error if the expression cannot be serialized.
Encode(T) (string, error) Encode(T) (string, error)
// Decode takes the serialized format of an expression, and returns its true
// value. Returns an error if the string doesn't correctly represent any
// valid expression.
Decode(string) (T, error) Decode(string) (T, error)
} }