mailmodel 0.1.5

A proof-of-concept mail viewer writting with Qt using QML
{
    "cppFile": "Bindings.cpp",
    "rust": {
        "dir": "",
        "interfaceModule": "interface",
        "implementationModule": "implementation"
    },
    "objects": {
        "MailModel": {
            "properties": {
                "folders": {
                    "type": "MailFolders"
                },
                "folder_threads": {
                    "type": "FolderTreeListing"
                },
                "currentFolder": {
                    "type": "QString",
                    "write": true
                },
                "email": {
                    "type": "Email"
                },
                "configFile": {
                    "type": "QString",
                    "write": true,
                    "optional": true
                }
            },
            "functions": {
                "setEmail": {
                    "return": "void",
                    "mut": true,
                    "arguments": [{
                        "name": "uid",
                        "type": "quint64"
                    }]
                }
            }
        },
        "MailFolders": {
            "type": "Tree",
            "itemProperties": {
                "name": {
                    "type": "QString"
                },
                "delimiter": {
                    "type": "QString"
                }
            }
        },
        "FolderTreeListing": {
            "type": "Tree",
            "itemProperties": {
                "uid": {
                    "type": "quint64"
                },
                "date": {
                    "type": "QString",
                    "optional": true,
                    "rustByValue": true
                },
                "section": {
                    "type": "QString",
                    "rustByValue": true
                },
                "from": {
                    "type": "QString",
                    "optional": true
                },
                "subject": {
                    "type": "QString",
                    "optional": true
                },
                "seen": {
                    "type": "bool"
                }
            },
            "functions": {
                "setFilter": {
                    "return": "void",
                    "mut": true,
                    "arguments": [{
                        "name": "filter",
                        "type": "QString"
                    }]
                }
            }
        },
        "Email": {
            "type": "Object",
            "properties": {
                "date": {
                    "type": "QString",
                    "rustByFunction": true
                },
                "from": {
                    "type": "QString",
                    "rustByFunction": true
                },
                "subject": {
                    "type": "QString",
                    "rustByFunction": true
                },
                "body": {
                    "type": "QString",
                    "rustByFunction": true
                },
                "html": {
                    "type": "QString",
                    "rustByFunction": true
                },
                "attachments": {
                    "type": "Attachments"
                }
            }
        },
        "Attachments": {
            "type": "List",
            "itemProperties": {
                "name": {
                    "type": "QString"
                },
                "bytes": {
                    "type": "QByteArray"
                }
            },
            "functions": {
                "saveToFolder": {
                    "return": "QString",
                    "arguments": [{
                        "name": "index",
                        "type": "quint32"
                    }, {
                        "name": "folder",
                        "type": "QString"
                    }]
                }
            }
        }
    }
}