WIT_CONTENT

Constant WIT_CONTENT 

Source
pub const WIT_CONTENT: &str = "package vtx:api@1.2.0;\n\n/// --- SQL \u{63a5}\u{53e3}\u{5b9a}\u{4e49} ---\n/// \u{63d0}\u{4f9b}\u{57fa}\u{7840} SQL \u{8bed}\u{53e5}\u{6267}\u{884c}\u{4e0e} JSON \u{67e5}\u{8be2}\u{80fd}\u{529b}\ninterface sql {\n    /// \u{652f}\u{6301}\u{7684}\u{6570}\u{636e}\u{5e93}\u{503c}\u{7c7b}\u{578b}\n    variant db-value {\n        text(string),\n        integer(s64),\n        real(f64),\n        null-val,\n    }\n\n    /// \u{6267}\u{884c}\u{5199}\u{7c7b}\u{8bed}\u{53e5} (INSERT/UPDATE/DELETE)\u{ff0c}\u{8fd4}\u{56de}\u{5f71}\u{54cd}\u{884c}\u{6570}\u{6216}\u{9519}\u{8bef}\u{4fe1}\u{606f}\n    execute: func(statement: string, params: list<db-value>) -> result<u64, string>;\n\n    /// \u{6267}\u{884c} SELECT \u{5e76}\u{8fd4}\u{56de} JSON \u{5e8f}\u{5217}\u{5316}\u{7ed3}\u{679c}\n    query-json: func(statement: string, params: list<db-value>) -> result<string, string>;\n}\n\n/// --- Stream IO \u{63a5}\u{53e3}\u{5b9a}\u{4e49} ---\n/// \u{652f}\u{6301}\u{6587}\u{4ef6}\u{4e0e}\u{5185}\u{5b58}\u{7f13}\u{51b2}\u{533a}\u{8bbf}\u{95ee}\ninterface stream-io {\n    resource buffer {\n        /// \u{83b7}\u{53d6}\u{8d44}\u{6e90}\u{603b}\u{5b57}\u{8282}\u{5927}\u{5c0f}\n        size: func() -> u64;\n\n        /// \u{4ece}\u{6307}\u{5b9a}\u{504f}\u{79fb}\u{8bfb}\u{53d6}\u{6570}\u{636e}\n        read: func(offset: u64, max-bytes: u64) -> list<u8>;\n    }\n\n    /// \u{6253}\u{5f00}\u{5df2}\u{6ce8}\u{518c}\u{89c6}\u{9891}\u{8d44}\u{6e90}\u{6587}\u{4ef6}\u{ff08}\u{6309} UUID \u{67e5}\u{8be2}\u{ff09}\n    open-file: func(uuid: string) -> result<buffer, string>;\n\n    /// \u{521b}\u{5efa}\u{5185}\u{5b58}\u{7f13}\u{51b2}\u{533a}\u{8d44}\u{6e90}\u{ff08}\u{8fd4}\u{56de} buffer \u{8d44}\u{6e90}\u{53e5}\u{67c4}\u{ff09}\n    create-memory-buffer: func(data: list<u8>) -> buffer;\n}\n\n/// --- \u{9274}\u{6743}\u{7c7b}\u{578b}\u{5b9a}\u{4e49} ---\n/// \u{7528}\u{6237}\u{4e0a}\u{4e0b}\u{6587}\u{7ed3}\u{6784}\u{ff0c}\u{4f5c}\u{4e3a}\u{8eab}\u{4efd}\u{8ba4}\u{8bc1}\u{7ed3}\u{679c}\u{8fd4}\u{56de}\ninterface auth-types {\n    record user-context {\n        user-id: string,        // \u{7528}\u{6237}\u{552f}\u{4e00}\u{6807}\u{8bc6}\n        username: string,       // \u{7528}\u{6237}\u{663e}\u{793a}\u{540d}\n        groups: list<string>,   // \u{6240}\u{5c5e}\u{89d2}\u{8272}\u{6216}\u{6743}\u{9650}\u{7ec4}\n        metadata: string,       // \u{9644}\u{52a0}\u{5143}\u{6570}\u{636e}\u{ff08}\u{5efa}\u{8bae}\u{4e3a} JSON\u{ff09}\n    }\n}\n\n/// --- \u{901a}\u{7528}\u{7c7b}\u{578b}\u{5b9a}\u{4e49} ---\ninterface types {\n    use stream-io.{buffer};\n    use auth-types.{user-context};\n\n    record http-request {\n        method: string,\n        path: string,\n        query: string,\n    }\n\n    record http-response {\n        status: u16,\n        body: option<buffer>,\n    }\n\n    record manifest {\n        id: string,\n        name: string,\n        version: string,\n        description: string,\n        entrypoint: string,\n    }\n}\n\n/// --- \u{63d2}\u{4ef6}\u{63a5}\u{53e3}\u{5165}\u{53e3}\u{5b9a}\u{4e49} ---\nworld plugin {\n    use types.{http-request, http-response, manifest};\n    use auth-types.{user-context};\n\n    import stream-io;\n    import sql;\n\n    /// \u{4e1a}\u{52a1}\u{8bf7}\u{6c42}\u{5904}\u{7406}\u{ff08}\u{63d2}\u{4ef6}\u{4e3b}\u{5165}\u{53e3}\u{ff09}\n    export handle: func(req: http-request) -> http-response;\n\n    /// \u{6570}\u{636e}\u{8fc1}\u{79fb}\u{811a}\u{672c}\u{ff08}\u{6309}\u{7248}\u{672c}\u{987a}\u{5e8f}\u{ff09}\n    export get-migrations: func() -> list<string>;\n\n    /// \u{63d2}\u{4ef6}\u{6e05}\u{5355}\u{4fe1}\u{606f}\n    export get-manifest: func() -> manifest;\n\n    /// \u{63d2}\u{4ef6}\u{58f0}\u{660e}\u{7684}\u{6570}\u{636e}\u{5e93}\u{8d44}\u{6e90}\u{ff08}\u{5982}\u{8868}\u{540d}\u{ff09}\n    export get-resources: func() -> list<string>;\n\n    /// \u{63d2}\u{4ef6}\u{8eab}\u{4efd}\u{9a8c}\u{8bc1}\u{63a5}\u{53e3}\n    ///\n    /// - \u{8f93}\u{5165}\u{ff1a}HTTP \u{8bf7}\u{6c42}\u{5934}\u{90e8} (\u{952e}\u{503c}\u{5bf9}\u{5217}\u{8868})\n    /// - \u{6210}\u{529f}\u{ff1a}\u{8fd4}\u{56de}\u{7528}\u{6237}\u{4e0a}\u{4e0b}\u{6587}\n    /// - \u{5931}\u{8d25}\u{ff1a}\u{8fd4}\u{56de} HTTP \u{72b6}\u{6001}\u{7801}\u{ff08}\u{5982} 401, 403\u{ff09}\n    export authenticate: func(headers: list<tuple<string, string>>) -> result<user-context, u16>;\n}\n";