package trees

import (
    "context"
    "example.com/recursive/internal/types"
)

func sample() types.Node {
    return types.Node{Name: "root", Children: []types.Node{
        {Name: "child", Children: []types.Node{
            {Name: "leaf", Children: []types.Node{}},
        }},
    }, Lookup: map[string]types.Node{"entry": {Name: "lookup", Children: []types.Node{}}}}
}

func (s *Logic) Tree(context.Context) (*types.Node, error) { node := sample(); return &node, nil }
func (s *Logic) Forest(context.Context) ([]types.Node, error) { return []types.Node{sample()}, nil }
func (s *Logic) Optional(context.Context) (*types.Node, error) { return nil, nil }
func (s *Logic) Raw(context.Context) (*types.Node, error) { node := sample(); return &node, nil }
func (s *Logic) Pair(context.Context) (*types.Branch, error) {
    return &types.Branch{Leaf: &types.Leaf{}}, nil
}
