Übersicht der Quellen

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  ffiops.rs

  Sprache: Rust
 

/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */


//! Functions, types and expressions to handle FFI operations.
//!
//! This module leverages the various traits defined in `uniffi_core::ffi_converter_traits` to provide functionality to the rest of `uniffi_macros`.
//! Keeping this layer separate makes it easier to handle changes to those traits.
//! See `uniffi_core::ffi_converter_traits` for the meaning of these functions.

use proc_macro2::TokenStream;
use quote::{quote, ToTokens};

// Lower type
pub fn lower_type(ty: impl ToTokens) -> TokenStream {
    quote! {
        <#ty as ::uniffi::Lower<crate::UniFfiTag>>::FfiType
    }
}

// Lower function
pub fn lower(ty: impl ToTokens) -> TokenStream {
    quote! {
        <#ty as ::uniffi::Lower<crate::UniFfiTag>>::lower
    }
}

// Lift type
pub fn lift_type(ty: impl ToTokens) -> TokenStream {
    quote! {
        <#ty as ::uniffi::Lift<crate::UniFfiTag>>::FfiType
    }
}

// Lift function
pub fn try_lift(ty: impl ToTokens) -> TokenStream {
    quote! {
        <#ty as ::uniffi::Lift<crate::UniFfiTag>>::try_lift
    }
}

/// Write function
pub fn write(ty: impl ToTokens) -> TokenStream {
    quote! {
        <#ty as ::uniffi::Lower<crate::UniFfiTag>>::write
    }
}

/// Read function
pub fn try_read(ty: impl ToTokens) -> TokenStream {
    quote! {
        <#ty as ::uniffi::Lift<crate::UniFfiTag>>::try_read
    }
}

/// Lower return type
pub fn lower_return_type(ty: impl ToTokens) -> TokenStream {
    quote! {
        <#ty as ::uniffi::LowerReturn<crate::UniFfiTag>>::ReturnType
    }
}

/// Lower return function
pub fn lower_return(ty: impl ToTokens) -> TokenStream {
    quote! {
        <#ty as ::uniffi::LowerReturn<crate::UniFfiTag>>::lower_return
    }
}

/// Lower error function
pub fn lower_error(ty: impl ToTokens) -> TokenStream {
    quote! {
        <#ty as ::uniffi::LowerError<crate::UniFfiTag>>::lower_error
    }
}

/// Lift return type
pub fn lift_return_type(ty: impl ToTokens) -> TokenStream {
    quote! {
        <#ty as ::uniffi::LiftReturn<crate::UniFfiTag>>::ReturnType
    }
}

/// Lift foreign return function
pub fn lift_foreign_return(ty: impl ToTokens) -> TokenStream {
    quote! {
        <#ty as ::uniffi::LiftReturn<crate::UniFfiTag>>::lift_foreign_return
    }
}

/// Handle failed lift function
pub fn lower_return_handle_failed_lift(ty: impl ToTokens) -> TokenStream {
    quote! {
        <#ty as ::uniffi::LowerReturn<crate::UniFfiTag>>::handle_failed_lift
    }
}

/// LiftRef type
pub fn lift_ref_type(ty: impl ToTokens) -> TokenStream {
    quote! { <#ty as ::uniffi::LiftRef<crate::UniFfiTag>>::LiftType }
}

/// Lower into rust buffer function
pub fn lower_into_rust_buffer(ty: impl ToTokens) -> TokenStream {
    quote! {
        <#ty as ::uniffi::Lower<crate::UniFfiTag>>::lower_into_rust_buffer
    }
}

/// Lift from rust buffer function
pub fn try_lift_from_rust_buffer(ty: impl ToTokens) -> TokenStream {
    quote! {
        <#ty as ::uniffi::Lift<crate::UniFfiTag>>::try_lift_from_rust_buffer
    }
}

/// Expression for the TYPE_ID_META value for a type
pub fn type_id_meta(ty: impl ToTokens) -> TokenStream {
    quote! {
        <#ty as ::uniffi::TypeId<crate::UniFfiTag>>::TYPE_ID_META
    }
}

Messung V0.5 in Prozent
C=85 H=100 G=92

¤ Dauer der Verarbeitung: 0.19 Sekunden  (vorverarbeitet am  2026-06-19) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik