Skip to content

Macros that can ergonomically expand to a full protocol definition #4

@ebfull

Description

@ebfull
type Foo = protocol!(
    Recv usize,
    Send usize,
    Nest {
        Send usize,
        Nest {
            Recv usize,
            Choose [
                { Escape Z },
                {
                    Send usize,
                    Escape S<Z>
                }
            ]
        }
    }
);

should expand to

type Foo = Recv<usize,
                Send<usize,
                     Nest<Send<usize,
                               Nest<Recv<usize,
                                         Choose<Escape<Z>,
                                                Finally<Send<usize,
                                                             Escape<S<Z>>
                                                        >
                                                >
                                         >
                                    >
                               >
                          >
                     >
                >
           >

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions