library fidl.test.emptystruct;

type Empty = struct {};

protocol EmptyProtocol {
    Send(struct {
        e Empty;
    });
    -> Receive(struct {
        e Empty;
    });
    SendAndReceive(struct {
        e Empty;
    }) -> (struct {
        e Empty;
    });
};
