[Rust Daily] 2023-09-24 cfg_match! a été ajouté à la bibliothèque standard

cfg_match! a été ajouté à la bibliothèque standard

#![feature(cfg_match)]

cfg_match! {
    cfg(unix) => {
        fn foo() { /* unix specific functionality */ }
    }
    cfg(target_pointer_width = "32") => {
        fn foo() { /* non-unix, 32-bit functionality */ }
    }
    _ => {
        fn foo() { /* fallback implementation */ }
    }
}

GitHub : https://github.com/rust-lang/rust/pull/115416

cadre d'interface utilisateur multiplateforme viewbuilder

Cette caisse fournit une API de rendu de type HTML pour le backend de l'interface utilisateur. Il est construit spécifiquement comme un backend pour concocter, mais vous pouvez également l'utiliser comme backend pour introduire vos propres outils de gestion d'état ou créer votre propre framework.

Les caractéristiques sont les suivantes :

  • Multiplateforme, prend en charge les appareils de bureau et mobiles.
  • Possède une API de gestion des événements similaire au HTML.
  • Disposition flexible des boîtes et des grilles CSS implémentées à l'aide de Taffy.
  • Implémentez la prise en charge de l’accessibilité via accesskit.
  • Rendu haute performance utilisant rust-skia.

Exemple d'utilisation :

let mut tree = Tree::default();
let root = Element::new()
    .align_items(AlignItems::Center)
    .justify_content(JustifyContent::Center)
    .child(tree.insert("Hello World!"))
    .build(&mut tree);

viewbuilder::run(tree, root)

GitHub : https://github.com/concoct-rs/viewbuilder

fantaisie-durée v0.6.0 publiée

fancy-duration implémente un schéma similaire au time.ParseDuration de Go, générant une durée générale adaptée à tout type pouvant utiliser des secondes et des nanosecondes. Il prend en charge les caisses serde, time et chrono par défaut, et fournit des fonctionnalités que vous pouvez implémenter pour rendre vos propres durées compatibles avec lui et donc avec serde etc. Il fournit des formats compacts et délimités par des espaces.

Exemple d'utilisation :

use std::time::Duration;
use fancy_duration::FancyDuration;

pub fn main() {
    assert_eq!(FancyDuration(Duration::new(20, 0)).to_string(), "20s");
    assert_eq!(FancyDuration(Duration::new(600, 0)).to_string(), "10m");
    assert_eq!(FancyDuration(Duration::new(120, 0)).to_string(), "2m");
    assert_eq!(FancyDuration(Duration::new(185, 0)).to_string(), "3m 5s");
    assert_eq!(FancyDuration::<Duration>::parse("3m 5s").unwrap().duration(), Duration::new(185, 0));
    assert_eq!(FancyDuration(Duration::new(185, 0)).to_string(), "3m 5s");

    #[cfg(feature = "time")]
    {
        // also works with time::Duration from the `time` crate
        assert_eq!(FancyDuration(time::Duration::new(20, 0)).to_string(), "20s");
        assert_eq!(FancyDuration(time::Duration::new(600, 0)).to_string(), "10m");
        assert_eq!(FancyDuration(time::Duration::new(120, 0)).to_string(), "2m");
        assert_eq!(FancyDuration(time::Duration::new(185, 0)).to_string(), "3m 5s");
        assert_eq!(FancyDuration::<time::Duration>::parse("3m 5s").unwrap().duration(), time::Duration::new(185, 0));
        assert_eq!(FancyDuration(time::Duration::new(185, 0)).to_string(), "3m 5s");
    }

    #[cfg(feature = "chrono")]
    {
        // also works with chrono!
        assert_eq!(FancyDuration(chrono::Duration::seconds(20)).to_string(), "20s");
        assert_eq!(FancyDuration(chrono::Duration::seconds(600)).to_string(), "10m");
        assert_eq!(FancyDuration(chrono::Duration::seconds(120)).to_string(), "2m");
        assert_eq!(FancyDuration(chrono::Duration::seconds(185)).to_string(), "3m 5s");
        assert_eq!(FancyDuration::<chrono::Duration>::parse("3m 5s").unwrap().duration(), chrono::Duration::seconds(185));
        assert_eq!(FancyDuration(chrono::Duration::seconds(185)).to_string(), "3m 5s");
    }
}

GitHub : https://github.com/erikh/fancy-duration


Du chef d'équipe quotidien Qin

Abonnement à la plateforme communautaire d'échange d'apprentissage :

  • Forum Rustcc : prise en charge des flux RSS
  • Compte public WeChat : communauté chinoise en langue Rust

Je suppose que tu aimes

Origine blog.csdn.net/u012067469/article/details/133285690
conseillé
Classement