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>
impl<'i, T: Iterator<Item = I> + Clone, I: Debug> Debug for FmtJoin<'i, T, I>
Source§fn fmt(&self, f: &mut Formatter<'_>) -> Result
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>
impl<'i, T: Iterator<Item = I> + Clone, I: Display> Display for FmtJoin<'i, T, I>
Source§fn fmt(&self, f: &mut Formatter<'_>) -> Result
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
impl<T> AllocForAny<T> for T
Source§fn galloc(self) -> &'static T
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
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> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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