Trait JsonRpcParams

Source
pub trait JsonRpcParams
where Self: Sized + Debug + Serialize,
{ type Container<T>: Debug + Serialize; type Response: Debug + DeserializeOwned; // Required method fn build(self, id: JsonRpcId) -> JsonRpcRequest<Self>; }
Expand description

Implemented by Odoo “method” types (e.g., Execute or SessionAuthenticate)

When building an JsonRpcRequest object, the params field is actually set to JsonRpcParams::Container, not the concrete “method” type. This allows for flexibility in the Serialize impl.

For example, the Execute method uses OdooApiContainer as its container, which injects the service and method keys into the request struct:

{
    "jsonrpc": "2.0",
    "method": "call",
    "id": 1000,
    "params": {
        "service": "object",
        "method": "execute",
        "args": <Execute is serialized here>
    }
}

Whereas the SessionAuthenticate method’s container (OdooWebContainer) has a transparent Serialize impl, so the SessionAuthenticate data is set directly on the params key:

{
    "jsonrpc": "2.0",
    "method": "call",
    "id": 1000,
    "params": <SessionAuthenticate is serialized here>
}

Required Associated Types§

Required Methods§

Source

fn build(self, id: JsonRpcId) -> JsonRpcRequest<Self>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl JsonRpcParams for About

Source§

impl JsonRpcParams for Authenticate

Source§

impl JsonRpcParams for Login

Source§

impl JsonRpcParams for Version

Source§

impl JsonRpcParams for ChangeAdminPassword

Source§

impl JsonRpcParams for CreateDatabase

Source§

impl JsonRpcParams for DbExist

Source§

impl JsonRpcParams for Drop

Source§

impl JsonRpcParams for Dump

Source§

impl JsonRpcParams for DuplicateDatabase

Source§

impl JsonRpcParams for List

Source§

impl JsonRpcParams for ListCountries

Source§

impl JsonRpcParams for ListLang

Source§

impl JsonRpcParams for MigrateDatabases

Source§

impl JsonRpcParams for Rename

Source§

impl JsonRpcParams for Restore

Source§

impl JsonRpcParams for ServerVersion

Source§

impl JsonRpcParams for Execute

Source§

impl JsonRpcParams for ExecuteKw

Source§

impl JsonRpcParams for CheckAccessRights

Source§

impl JsonRpcParams for CheckAccessRules

Source§

impl JsonRpcParams for CheckFieldAccessRights

Source§

impl JsonRpcParams for Copy

Source§

impl JsonRpcParams for Create

Source§

impl JsonRpcParams for Exists

Source§

impl JsonRpcParams for GetExternalId

Source§

impl JsonRpcParams for GetMetadata

Source§

impl JsonRpcParams for GetXmlId

Source§

impl JsonRpcParams for NameCreate

Source§

impl JsonRpcParams for NameGet

Source§

impl JsonRpcParams for NameSearch

Source§

impl JsonRpcParams for Read

Source§

impl JsonRpcParams for ReadGroup

Source§

impl JsonRpcParams for SearchCount

Source§

impl JsonRpcParams for SearchRead

Source§

impl JsonRpcParams for Write

Source§

impl JsonRpcParams for DatabaseList

Source§

impl JsonRpcParams for GetSessionInfo

Source§

impl JsonRpcParams for SessionAuthenticate