Seregon/StratoSDK

StratoSDK is a framework with a declarative approach similar to Flutter/React, written and designed entirely for Rust.

Rust/27.3 KB/No license
crates/strato-ui-renderer/examples/animated-gradient-text/main.rs
1use anyhow::{anyhow, Result};
2use std::borrow::Cow;
3 
4pub mod root_view;
5 
6extern crate strato_ui;
7use rust_embed::RustEmbed;
8use strato_ui::{platform, AssetProvider};
9 
10#[derive(Clone, Copy, RustEmbed)]
11#[folder = "examples/assets"]
12pub struct Assets;
13 
14pub static ASSETS: Assets = Assets;
15 
16impl AssetProvider for Assets {
17 fn get(&self, path: &str) -> Result<Cow<'_, [u8]>> {
18 <Assets as RustEmbed>::get(path)
19 .map(|f| f.data)
20 .ok_or_else(|| anyhow!("no asset exists at path {path}"))
21 }
22}
23 
24fn main() -> Result<()> {
25 let app_builder =
26 platform::AppBuilder::new(platform::AppCallbacks::default(), Box::new(ASSETS), None);
27 let _ = app_builder.run(|ctx| {
28 ctx.add_window(
29 strato_ui::AddWindowOptions::default(),
30 root_view::RootView::new,
31 );
32 });
33 
34 Ok(())
35}
36