summaryrefslogtreecommitdiffstats
path: root/third_party/rust/uniffi-example-todolist/src/todolist.udl
blob: 5c923314cd6aedf648dae8cb032938bee8bf1eb0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
namespace todolist {
    TodoList? get_default_list();
    undefined set_default_list(TodoList list);

    [Throws=TodoError]
    TodoEntry create_entry_with(string todo);
};

dictionary TodoEntry {
    string text;
};

[Error]
enum TodoError {
    "TodoDoesNotExist", "EmptyTodoList", "DuplicateTodo", "EmptyString", "DeligatedError"
};

interface TodoList {
    constructor();
    [Throws=TodoError]
    void add_item(string todo);
    [Throws=TodoError]
    void add_entry(TodoEntry entry);
    sequence<TodoEntry> get_entries();
    sequence<string> get_items();
    void add_entries(sequence<TodoEntry> entries);
    void add_items(sequence<string> items);
    [Throws=TodoError]
    TodoEntry get_last_entry();
    [Throws=TodoError]
    string get_last();
    [Throws=TodoError]
    string get_first();
    [Throws=TodoError]
    void clear_item(string todo);
    [Self=ByArc]
    undefined make_default();
};