use crate::Segment;
use crate::syntax::Delimiter;
use std_alloc::string::String;
impl<D> Segment<D, &str> {
#[must_use]
#[inline]
pub fn into_owned(self) -> Segment<D, String> {
match self {
Segment::Chunk(chunk) => Segment::Chunk(String::from(chunk)),
Segment::Delim(delim) => Segment::Delim(delim),
}
}
}
impl<D: Delimiter> Segment<D, String> {
pub fn len(&self) -> usize {
match self {
Self::Delim(delim) => delim.as_char().len_utf8(),
Self::Chunk(chunk) => chunk.len(),
}
}
}
impl Segment<char, String> {
pub fn len(&self) -> usize {
match self {
Self::Delim(delim) => delim.len_utf8(),
Self::Chunk(chunk) => chunk.len(),
}
}
}