pub(super) struct InlineHtmlBuilder<'a> {
single_line: bool,
ellipsis: bool,
mentions: MentionsMode<'a>,
inner: String,
truncated: bool,
}
Expand description
Helper type to construct a Pango-compatible string from inline HTML nodes.
Fields§
§single_line: bool
Whether this string should be on a single line.
ellipsis: bool
Whether to append an ellipsis at the end of the string.
mentions: MentionsMode<'a>
The mentions detection setting and results.
inner: String
The inner string.
truncated: bool
Whether this string was truncated because at the first newline.
Implementations§
Source§impl<'a> InlineHtmlBuilder<'a>
impl<'a> InlineHtmlBuilder<'a>
Sourcepub(super) fn new(single_line: bool, ellipsis: bool) -> Self
pub(super) fn new(single_line: bool, ellipsis: bool) -> Self
Constructs a new inline HTML string builder for the given room.
If single_line
is set to true
, the string will be ellipsized at the
first line break.
If ellipsis
is set to true
, and ellipsis will be added at the end of
the string.
Sourcepub(super) fn detect_mentions(
self,
room: &'a Room,
detect_at_room: bool,
) -> Self
pub(super) fn detect_mentions( self, room: &'a Room, detect_at_room: bool, ) -> Self
Enable mentions detection in the given room.
If detect_at_room
is true
, it will also try to detect @room
mentions.
Sourcepub(super) fn append_emote_with_name(self, name: &mut Option<&str>) -> Self
pub(super) fn append_emote_with_name(self, name: &mut Option<&str>) -> Self
Append and consume the given sender name for an emote, if it is set.
Sourcepub(super) fn build(self) -> (String, Option<Vec<Pill>>)
pub(super) fn build(self) -> (String, Option<Vec<Pill>>)
Export the Pango-compatible string and the Pill
s that were
constructed, if any.
Sourcepub(super) fn build_with_nodes(
self,
nodes: impl IntoIterator<Item = NodeRef>,
) -> (String, Option<Vec<Pill>>)
pub(super) fn build_with_nodes( self, nodes: impl IntoIterator<Item = NodeRef>, ) -> (String, Option<Vec<Pill>>)
Construct the string with the given inline nodes by converting them to Pango markup.
Returns the Pango-compatible string and the Pill
s that were
constructed, if any.
Sourcepub(super) fn build_with_nodes_text(
self,
nodes: impl IntoIterator<Item = NodeRef>,
) -> String
pub(super) fn build_with_nodes_text( self, nodes: impl IntoIterator<Item = NodeRef>, ) -> String
Construct the string by traversing the nodes an returning only the text it contains.
Node that markup contained in the text is not escaped and newlines are not removed.
Sourcefn append_node(&mut self, node: &NodeRef, should_linkify: bool)
fn append_node(&mut self, node: &NodeRef, should_linkify: bool)
Append the given inline node by converting it to Pango markup.
Sourcefn append_nodes(
&mut self,
nodes: impl IntoIterator<Item = NodeRef>,
should_linkify: bool,
)
fn append_nodes( &mut self, nodes: impl IntoIterator<Item = NodeRef>, should_linkify: bool, )
Append the given inline nodes, converted to Pango markup.
Append the given inline children, converted to Pango markup, surrounded by tags with the given name.
Sourcefn append_link_opening_tag_from_anchor_uri(&mut self, uri: &AnchorUri) -> bool
fn append_link_opening_tag_from_anchor_uri(&mut self, uri: &AnchorUri) -> bool
Append the opening Pango markup link tag of the given anchor URI.
The URI is also used as a title, so users can preview the link on hover.
Returns true
if the opening tag was successfully constructed.
Sourcefn append_span(
&mut self,
span: &SpanData,
children: Children,
should_linkify: bool,
)
fn append_span( &mut self, span: &SpanData, children: Children, should_linkify: bool, )
Append the span with the given data and inline children as Pango Markup.
Whether we are an inside an anchor or not decides if we try to linkify the text contained in the children nodes.
Sourcefn append_nodes_text(&mut self, nodes: impl IntoIterator<Item = NodeRef>)
fn append_nodes_text(&mut self, nodes: impl IntoIterator<Item = NodeRef>)
Append the text contained in the nodes to the string.
Returns true
if the text was ellipsized.
Trait Implementations§
Auto Trait Implementations§
impl<'a> Freeze for InlineHtmlBuilder<'a>
impl<'a> !RefUnwindSafe for InlineHtmlBuilder<'a>
impl<'a> !Send for InlineHtmlBuilder<'a>
impl<'a> !Sync for InlineHtmlBuilder<'a>
impl<'a> Unpin for InlineHtmlBuilder<'a>
impl<'a> !UnwindSafe for InlineHtmlBuilder<'a>
Blanket Implementations§
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, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
Source§impl<T> Identity for Twhere
T: ?Sized,
impl<T> Identity for Twhere
T: ?Sized,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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