uniffi_bindgen 0.31.1

a multi-language bindings generator for rust (codegen and cli tooling)
Documentation
{# expects var `uniffi_trait_methods` #}
{%- if let Some(fmt) = uniffi_trait_methods.debug_fmt %}
{%-    let callable = fmt.callable %}
# The Rust `Debug::fmt` implementation.
def __repr__(self) -> {{ callable.return_type.type_name }}:
    {% filter indent(4) -%}
    {% include "CallableBody.py" -%}
    {% endfilter -%}
{%- endif %}

{%- if let Some(fmt) = uniffi_trait_methods.display_fmt %}
{%-    let callable = fmt.callable %}
# The Rust `Display::fmt` implementation.
def __str__(self) -> {{ callable.return_type.type_name }}:
    {% filter indent(4) -%}
    {% include "CallableBody.py" -%}
    {% endfilter -%}
{%- endif %}

{%- if let Some(eq) = uniffi_trait_methods.eq_eq %}
{%-    let callable = eq.callable %}
# The Rust `Eq::eq` implementation.
def __eq__(self, other: object) -> {{ callable.return_type.type_name }}:
    if not isinstance(other, {{ callable.self_type().unwrap().type_name }}):
        return NotImplemented

    {% filter indent(4) -%}
    {% include "CallableBody.py" -%}
    {% endfilter -%}
{%- endif %}
{%- if let Some(ne) = uniffi_trait_methods.eq_ne %}
{%-    let callable = ne.callable %}
# The Rust `Eq::ne` implementation.
def __ne__(self, other: object) -> {{ callable.return_type.type_name }}:
    if not isinstance(other, {{ callable.self_type().unwrap().type_name }}):
        return NotImplemented
    {% filter indent(4) -%}
    {% include "CallableBody.py" -%}
    {% endfilter -%}
{%- endif %}

{%- if let Some(hash) = uniffi_trait_methods.hash_hash %}
{%-    let callable = hash.callable %}
# The Rust `Hash::hash` implementation.
def __hash__(self) -> {{ callable.return_type.type_name }}:
    {% filter indent(4) -%}
    {% include "CallableBody.py" -%}
    {% endfilter -%}

{%- endif %}

{%- if let Some(cmp) = uniffi_trait_methods.ord_cmp %}
{%-    let callable = cmp.callable %}
# The Rust `Ord::cmp` implementation.
# lol/sob, python3 got rid of the perfect python2 `.__cmp__()` :(
def __rust_cmp__(self, other) -> {{ callable.return_type.type_name }}:
    {% filter indent(4) -%}
    {% include "CallableBody.py" -%}
    {% endfilter %}

def __lt__(self, other) -> bool:
    return self.__rust_cmp__(other) < 0

def __le__(self, other) -> bool:
    return self.__rust_cmp__(other) <= 0

def __gt__(self, other) -> bool:
    return self.__rust_cmp__(other) > 0

def __ge__(self, other) -> bool:
    return self.__rust_cmp__(other) >= 0
{%- endif %}