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


Quelle  01-maybe-async.rs   Sprache: unbekannt

 
#![allow(dead_code)]

use maybe_async::maybe_async;

#[maybe_async(Send)]
trait Trait {
    fn sync_fn() {}

    async fn declare_async(&self);

    async fn async_fn(&self) {
        self.declare_async().await
    }
}

#[maybe_async(?Send)]
pub trait PubTrait {
    fn sync_fn() {}

    async fn declare_async(&self);

    async fn async_fn(&self) {
        self.declare_async().await
    }
}

#[maybe_async]
pub(crate) trait PubCrateTrait {
    fn sync_fn() {}

    async fn declare_async(&self);

    async fn async_fn(&self) {
        self.declare_async().await
    }
}

#[maybe_async(AFIT)]
trait AfitTrait {
    fn sync_fn_afit() {}

    async fn declare_async_afit(&self);

    async fn async_fn_afit(&self) {
        self.declare_async_afit().await
    }
}

#[maybe_async]
async fn async_fn() {}

#[maybe_async]
pub async fn pub_async_fn() {}

#[maybe_async]
pub(crate) async fn pub_crate_async_fn() {}

#[maybe_async]
unsafe fn unsafe_fn() {}

struct Struct;

#[maybe_async]
impl Struct {
    fn sync_fn_inherent() {}

    async fn declare_async_inherent(&self) {}

    async fn async_fn_inherent(&self) {
        async { self.declare_async_inherent().await }.await
    }
}

#[maybe_async]
impl Trait for Struct {
    fn sync_fn() {}

    async fn declare_async(&self) {}

    async fn async_fn(&self) {
        async { self.declare_async().await }.await
    }
}

#[maybe_async(AFIT)]
impl AfitTrait for Struct {
    fn sync_fn_afit() {}

    async fn declare_async_afit(&self) {}

    async fn async_fn_afit(&self) {
        async { self.declare_async_afit().await }.await
    }
}

#[cfg(feature = "is_sync")]
fn main() -> std::result::Result<(), ()> {
    let s = Struct;
    s.declare_async_inherent();
    s.async_fn_inherent();
    s.declare_async();
    s.async_fn();
    s.declare_async_afit();
    s.async_fn_afit();
    async_fn();
    pub_async_fn();
    Ok(())
}

#[cfg(not(feature = "is_sync"))]
#[async_std::main]
async fn main() {
    let s = Struct;
    s.declare_async_inherent().await;
    s.async_fn_inherent().await;
    s.declare_async().await;
    s.async_fn().await;
    s.declare_async_afit().await;
    s.async_fn_afit().await;
    async_fn().await;
    pub_async_fn().await;
}

[ Dauer der Verarbeitung: 0.14 Sekunden  (vorverarbeitet)  ]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge