Struct FmtJoin

Source
pub struct FmtJoin<'i, T: Iterator<Item = I> + Clone, I>(T, &'i str);
Expand description

This structure wraps an iterator alongside a separator string to facilitate joining elements with a specified delimiter during formatting.

It holds a cloneable iterator over items and a string slice that serves as the separator between the items when they are formatted. This design supports multiple passes of the iterator during formatting operations and enables implementations of formatting traits to output the joined elements either using their debug or display representations.

Tuple Fields§

§0: T§1: &'i str

Trait Implementations§

Source§

impl<'i, T: Iterator<Item = I> + Clone, I: Debug> Debug for FmtJoin<'i, T, I>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats a sequence of items by concatenating their Debug representations with a specified separator. This function takes a formatter and writes the Debug form of the first element, then iterates over the remaining items, prefixing each with the provided separator before writing their Debug representations.

It clones the underlying iterator, ensuring the original sequence is preserved, and gracefully handles cases where the iterator may be empty by simply returning a successful formatting result.

Source§

impl<'i, T: Iterator<Item = I> + Clone, I: Display> Display for FmtJoin<'i, T, I>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats and writes the joined representation of iterator elements with a given separator.

Writes the first element without a preceding separator and then appends each subsequent element prefixed by the specified separator by iterating over a cloned version of the stored iterator, thereby yielding a formatted string representation.

Auto Trait Implementations§

§

impl<'i, T, I> Freeze for FmtJoin<'i, T, I>
where T: Freeze,

§

impl<'i, T, I> RefUnwindSafe for FmtJoin<'i, T, I>
where T: RefUnwindSafe,

§

impl<'i, T, I> Send for FmtJoin<'i, T, I>
where T: Send,

§

impl<'i, T, I> Sync for FmtJoin<'i, T, I>
where T: Sync,

§

impl<'i, T, I> Unpin for FmtJoin<'i, T, I>
where T: Unpin,

§

impl<'i, T, I> UnwindSafe for FmtJoin<'i, T, I>
where T: UnwindSafe,

Blanket Implementations§

Source§

impl<T> AllocForAny<T> for T

Source§

fn galloc(self) -> &'static T

Provides a method to allocate an instance of T on the heap with a static lifetime.

This implementation of galloc takes ownership of the T instance and uses the alloc function to place it in a location with a static lifetime, presumably managing it in a way that ensures its persistence for the duration of the program. This can be particularly useful for scenarios where a static lifetime is required, such as when interfacing with systems or patterns that necessitate global state or long-lived data.

Source§

fn galloc_mut(self) -> &'static T

Provides a method that moves the instance and returns a reference to it allocated with a static lifetime.

This method utilizes alloc_mut to perform the allocation, likely involving allocating the resource in a manner that ensures it lives for the entire duration of the application. These semantics allow the user to safely assume that the reference will not expire during the program’s execution, making it suitable for long-lived data structures or operations that require such guarantees.

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V