webwire-cli 0.1.6

Contract-First API System - Command Line Interface
Documentation
namespace user {

    enum UserState {
        Active,
        Inactive,
        Banned
    }

    struct UserRequest {
        email: String,
    }

    struct Name {
        prefix: String (length=0..50),
        first_name: String (length=0..100),
        middle_name: String (length=0..100),
        last_name: String (length=0..100, help="aka. family name"),
        suffix: String (length=0..50),
        full_name: String
    }

    fieldset NameUpdate for Name {
        prefix?,
        first_name?,
        middle_name?,
        last_name?,
        suffix?
    }

    struct User {
        id: UUID,
        email: String,
        name: Name,
        password: String (length=5..64),
        is_admin: Boolean,
    }

    fieldset UserRead for User {
        id,
        email,
        is_admin,
        name
    }

    fieldset UserWrite for User {
        id,
        email?,
        is_admin?,
        name?,
        password?,
    }

    struct UserListRequest {
        offset?: Integer (size=32, range=0..),
        limit?: Integer (range=1..200)
    }

    struct UserList {
        count: Integer (
            range=0..0xFFFF,
            help="Count of objects returned"
        ),
        users: [UserRead] (length=0..128),
        permissions: {UUID: String}
    }

    enum GetError {
        PermissionDenied,
        DoesNotExist
    }

    enum ListError {
        PermissionDenied
    }

    service ExampleService {
        get_version: None -> String,
        user_get: UserRequest -> Result<UserRead, GetError>,
        user_list: UserListRequest -> Result<UserList, ListError>,
    }

}