Sha256: a38a13260e558333cc1a80ef3916a4fbc9b2d4e7fa18e8cbe60b266bb08325b9

Contents?: true

Size: 1.3 KB

Versions: 36

Compression:

Stored size: 1.3 KB

Contents

use crate::{LinearStrGroupBy, LinearStrGroupByMut};

/// An iterator that will return non-overlapping groups of equal `char`
/// in the `str` using *linear/sequential search*.
///
/// It will use the `char` [`PartialEq::eq`] function.
///
/// [`PartialEq::eq`]: https://doc.rust-lang.org/std/primitive.char.html#impl-PartialEq%3Cchar%3E
pub struct LinearStrGroup<'a>(LinearStrGroupBy<'a, fn(char, char) -> bool>);

impl<'a> LinearStrGroup<'a> {
    pub fn new(string: &'a str) -> Self {
        LinearStrGroup(LinearStrGroupBy::new(string, |a, b| a == b))
    }
}

str_group_by_wrapped!{ struct LinearStrGroup, &'a str }

/// An iterator that will return non-overlapping *mutable* groups of equal `char`
/// in the `str` using *linear/sequential search*.
///
/// It will use the `char` [`PartialEq::eq`] function.
///
/// [`PartialEq::eq`]: https://doc.rust-lang.org/std/primitive.char.html#impl-PartialEq%3Cchar%3E
pub struct LinearStrGroupMut<'a>(LinearStrGroupByMut<'a, fn(char, char) -> bool>);

impl<'a> LinearStrGroupMut<'a> {
    pub fn new(string: &'a mut str) -> LinearStrGroupMut {
        LinearStrGroupMut(LinearStrGroupByMut::new(string, |a, b| a == b))
    }

    #[inline]
    pub fn as_str_mut(&mut self) -> &mut str {
        self.0.as_str_mut()
    }
}

str_group_by_wrapped!{ struct LinearStrGroupMut, &'a mut str }

Version data entries

36 entries across 36 versions & 1 rubygems

Version Path
wasmtime-27.0.0 ./ext/cargo-vendor/slice-group-by-0.3.1/src/linear_str_group/linear_str_group.rs
wasmtime-26.0.0 ./ext/cargo-vendor/slice-group-by-0.3.1/src/linear_str_group/linear_str_group.rs
wasmtime-25.0.2 ./ext/cargo-vendor/slice-group-by-0.3.1/src/linear_str_group/linear_str_group.rs
wasmtime-25.0.1 ./ext/cargo-vendor/slice-group-by-0.3.1/src/linear_str_group/linear_str_group.rs
wasmtime-25.0.0 ./ext/cargo-vendor/slice-group-by-0.3.1/src/linear_str_group/linear_str_group.rs
wasmtime-24.0.0 ./ext/cargo-vendor/slice-group-by-0.3.1/src/linear_str_group/linear_str_group.rs
wasmtime-23.0.2 ./ext/cargo-vendor/slice-group-by-0.3.1/src/linear_str_group/linear_str_group.rs
wasmtime-22.0.0 ./ext/cargo-vendor/slice-group-by-0.3.1/src/linear_str_group/linear_str_group.rs
wasmtime-21.0.1 ./ext/cargo-vendor/slice-group-by-0.3.1/src/linear_str_group/linear_str_group.rs
wasmtime-20.0.2 ./ext/cargo-vendor/slice-group-by-0.3.1/src/linear_str_group/linear_str_group.rs
wasmtime-20.0.0 ./ext/cargo-vendor/slice-group-by-0.3.1/src/linear_str_group/linear_str_group.rs
wasmtime-18.0.3 ./ext/cargo-vendor/slice-group-by-0.3.1/src/linear_str_group/linear_str_group.rs
wasmtime-17.0.1 ./ext/cargo-vendor/slice-group-by-0.3.1/src/linear_str_group/linear_str_group.rs
wasmtime-17.0.0 ./ext/cargo-vendor/slice-group-by-0.3.1/src/linear_str_group/linear_str_group.rs
wasmtime-16.0.0 ./ext/cargo-vendor/slice-group-by-0.3.1/src/linear_str_group/linear_str_group.rs
wasmtime-15.0.1 ./ext/cargo-vendor/slice-group-by-0.3.1/src/linear_str_group/linear_str_group.rs
wasmtime-15.0.0 ./ext/cargo-vendor/slice-group-by-0.3.1/src/linear_str_group/linear_str_group.rs
wasmtime-14.0.4 ./ext/cargo-vendor/slice-group-by-0.3.1/src/linear_str_group/linear_str_group.rs
wasmtime-14.0.3 ./ext/cargo-vendor/slice-group-by-0.3.1/src/linear_str_group/linear_str_group.rs
wasmtime-14.0.1 ./ext/cargo-vendor/slice-group-by-0.3.1/src/linear_str_group/linear_str_group.rs