use iced::advanced::svg::Renderer as SvgRenderer;
use iced::advanced::text::Renderer as TextRenderer;
use iced::widget::svg as svg_widget;
use iced::widget::text;
use iced::{Color, Element, Font, Length};
pub(crate) fn from_svg<'a, Message, Theme, Renderer>(
bytes: Vec<u8>,
) -> Element<'a, Message, Theme, Renderer>
where
Message: 'a,
Theme: svg_widget::Catalog + 'a,
Renderer: SvgRenderer + 'a,
{
svg_widget::Svg::new(svg_widget::Handle::from_memory(bytes))
.width(Length::Shrink)
.height(Length::Shrink)
.into()
}
pub(crate) fn error_fallback<'a, Message, Theme, Renderer>(
src: String,
) -> Element<'a, Message, Theme, Renderer>
where
Message: 'a,
Theme: text::Catalog + 'a,
Renderer: TextRenderer<Font = Font> + 'a,
<Theme as text::Catalog>::Class<'a>: From<text::StyleFn<'a, Theme>>,
{
text::Text::new(src)
.font(Font::MONOSPACE)
.color(Color::from_rgb8(0xc0, 0x39, 0x2b))
.into()
}