Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Postgres/doc/src/sgml/   (Postgres Database Version 18.4©)  Datei vom 11.4.2026 mit Größe 7 kB image not shown  

Quelle  behavior.rs

  Sprache: Rust
 

//! Behavior semantics for `ArrayDeque`.
//!
//! `ArrayDeque` provides two different behaviors, `Saturating` and `Wrapping`,
//! determining whether to remove existing element automatically when pushing
//! to a full deque.
//!
//! The behavior is indicated by a marker type parameter of `ArrayDeque`,
//! which defaults to `Saturating`.
//!
//! ## Saturating
//!
//! Pushing any element when `ArrayDeque` is full will directly return an `Err(CapacityError)`
//! containing the element attempting to push, leaving the `ArrayDeque` unchanged.
//!
//! ```
//! use arraydeque::{ArrayDeque, Saturating, CapacityError};
//!
//! let mut tester: ArrayDeque<_, 2, Saturating> = ArrayDeque::new();
//!
//! assert_eq!(tester.push_back(1), Ok(()));
//! assert_eq!(tester.push_back(2), Ok(()));
//! assert_eq!(tester.push_back(3), Err(CapacityError { element: 3 }));
//! ```
//!
//! ## Wrapping
//!
//! Pushing any element when `ArrayDeque` is full will pop an element at
//! the other side to spare room.
//!
//! ```
//! use arraydeque::{ArrayDeque, Wrapping};
//!
//! let mut tester: ArrayDeque<_, 2, Wrapping> = ArrayDeque::new();
//!
//! assert_eq!(tester.push_back(1), None);
//! assert_eq!(tester.push_back(2), None);
//! assert_eq!(tester.push_back(3), Some(1));
//! ```

/// Marker trait for indicating behaviors of `ArrayDeque`.
pub trait Behavior {}

/// Behavior for `ArrayDeque` that specifies saturating write semantics.
pub struct Saturating;

impl Behavior for Saturating {}

/// Behavior for `ArrayDeque` that specifies wrapping write semantics.
pub struct Wrapping;

impl Behavior for Wrapping {}

Messung V0.5 in Prozent
C=82 H=74 G=77

¤ Dauer der Verarbeitung: 0.3 Sekunden  ¤

*© 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.