pub struct Text(pub FormattedText);
Tuple Fields§
§0: FormattedText
Methods from Deref<Target = FormattedText>§
pub fn get_base_mut(&mut self) -> &mut BaseComponent
pub fn get_base(&self) -> &BaseComponent
Sourcepub fn to_custom_format<F, S, C>(
&self,
style_formatter: F,
text_formatter: S,
cleanup_formatter: C,
default_style: &Style,
) -> String
pub fn to_custom_format<F, S, C>( &self, style_formatter: F, text_formatter: S, cleanup_formatter: C, default_style: &Style, ) -> String
Render all components into a single String
, using your custom
closures to drive styling, text transformation, and final cleanup.
§Type params
F
:(running, component, default) -> (prefix, suffix)
for per-component stylingS
:&str -> String
for text tweaks (escaping, mapping, etc.)C
:&final_running_style -> String
for any trailing cleanup
§Args
style_formatter
: how to open/close each component’s styletext_formatter
: how to turn raw text into output textcleanup_formatter
: emit after all components (e.g. reset codes)default_style
: where to reset when a component’sreset
is true
§Example
use azalea_chat::{FormattedText, DEFAULT_STYLE};
use serde::de::Deserialize;
let component = FormattedText::deserialize(&serde_json::json!({
"text": "Hello, world!",
"color": "red",
})).unwrap();
let ansi = component.to_custom_format(
|running, new, default| (running.compare_ansi(new, default), String::new()),
|text| text.to_string(),
|style| {
if !style.is_empty() {
"\u{1b}[m".to_string()
} else {
String::new()
}
},
&DEFAULT_STYLE,
);
println!("{}", ansi);
Sourcepub fn to_ansi_with_custom_style(&self, default_style: &Style) -> String
pub fn to_ansi_with_custom_style(&self, default_style: &Style) -> String
Convert this component into an ANSI string.
This is the same as FormattedText::to_ansi
, but you can specify a
default Style
to use.
Sourcepub fn to_ansi(&self) -> String
pub fn to_ansi(&self) -> String
Convert this component into an ANSI string, so you can print it to your terminal and get styling.
This is technically a shortcut for
FormattedText::to_ansi_with_custom_style
with a default Style
colored white.
§Examples
use azalea_chat::FormattedText;
use serde::de::Deserialize;
let component = FormattedText::deserialize(&serde_json::json!({
"text": "Hello, world!",
"color": "red",
})).unwrap();
println!("{}", component.to_ansi());
pub fn to_html(&self) -> String
Trait Implementations§
Source§impl Component for Text
impl Component for Text
Source§const STORAGE_TYPE: StorageType = bevy_ecs::component::StorageType::Table
const STORAGE_TYPE: StorageType = bevy_ecs::component::StorageType::Table
A constant indicating the storage type used for this component.
Source§type Mutability = Mutable
type Mutability = Mutable
A marker type to assist Bevy with determining if this component is
mutable, or immutable. Mutable components will have [
Component<Mutability = Mutable>
],
while immutable components will instead have [Component<Mutability = Immutable>
]. Read moreSource§fn register_required_components(
requiree: ComponentId,
components: &mut ComponentsRegistrator<'_>,
required_components: &mut RequiredComponents,
inheritance_depth: u16,
recursion_check_stack: &mut Vec<ComponentId>,
)
fn register_required_components( requiree: ComponentId, components: &mut ComponentsRegistrator<'_>, required_components: &mut RequiredComponents, inheritance_depth: u16, recursion_check_stack: &mut Vec<ComponentId>, )
Registers required components.
Source§fn clone_behavior() -> ComponentCloneBehavior
fn clone_behavior() -> ComponentCloneBehavior
Called when registering this component, allowing to override clone function (or disable cloning altogether) for this component. Read more
§fn register_component_hooks(hooks: &mut ComponentHooks)
fn register_component_hooks(hooks: &mut ComponentHooks)
👎Deprecated since 0.16.0: Use the individual hook methods instead (e.g.,
Component::on_add
, etc.)Called when registering this component, allowing mutable access to its [
ComponentHooks
].§fn on_add() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
fn on_add() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
Gets the
on_add
[ComponentHook
] for this [Component
] if one is defined.§fn on_insert() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
fn on_insert() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
Gets the
on_insert
[ComponentHook
] for this [Component
] if one is defined.§fn on_replace() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
fn on_replace() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
Gets the
on_replace
[ComponentHook
] for this [Component
] if one is defined.§fn on_remove() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
fn on_remove() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
Gets the
on_remove
[ComponentHook
] for this [Component
] if one is defined.§fn on_despawn() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
fn on_despawn() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
Gets the
on_despawn
[ComponentHook
] for this [Component
] if one is defined.§fn map_entities<E>(_this: &mut Self, _mapper: &mut E)where
E: EntityMapper,
fn map_entities<E>(_this: &mut Self, _mapper: &mut E)where
E: EntityMapper,
Maps the entities on this component using the given [
EntityMapper
]. This is used to remap entities in contexts like scenes and entity cloning.
When deriving [Component
], this is populated by annotating fields containing entities with #[entities]
Read moreAuto Trait Implementations§
impl Freeze for Text
impl RefUnwindSafe for Text
impl Send for Text
impl Sync for Text
impl Unpin for Text
impl UnwindSafe for Text
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
Mutably borrows from an owned value. Read more
§impl<C> Bundle for Cwhere
C: Component,
impl<C> Bundle for Cwhere
C: Component,
fn component_ids( components: &mut ComponentsRegistrator<'_>, ids: &mut impl FnMut(ComponentId), )
§fn register_required_components(
components: &mut ComponentsRegistrator<'_>,
required_components: &mut RequiredComponents,
)
fn register_required_components( components: &mut ComponentsRegistrator<'_>, required_components: &mut RequiredComponents, )
Registers components that are required by the components in this [
Bundle
].§fn get_component_ids(
components: &Components,
ids: &mut impl FnMut(Option<ComponentId>),
)
fn get_component_ids( components: &Components, ids: &mut impl FnMut(Option<ComponentId>), )
Gets this [
Bundle
]’s component ids. This will be None
if the component has not been registered.§impl<C> BundleFromComponents for Cwhere
C: Component,
impl<C> BundleFromComponents for Cwhere
C: Component,
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Converts
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
, which can then be
downcast
into Box<dyn ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Converts
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
, which can then be further
downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Converts
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Converts
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.