use bevy::{
asset::{AssetLoader, LoadContext, io::Reader},
reflect::TypePath,
};
use cine::sequence::SequenceAsset;
pub use cine::document::{SequenceError, parse_sequence, to_ron_string};
#[cfg(all(feature = "viewfinder", not(target_arch = "wasm32")))]
pub use cine::document::{load_sequence, save_sequence};
#[derive(Default, TypePath)]
pub struct SequenceLoader;
impl AssetLoader for SequenceLoader {
type Asset = SequenceAsset;
type Settings = ();
type Error = SequenceError;
async fn load(
&self,
reader: &mut dyn Reader,
_settings: &(),
_load_context: &mut LoadContext<'_>,
) -> Result<Self::Asset, Self::Error> {
let mut bytes = Vec::new();
reader.read_to_end(&mut bytes).await?;
parse_sequence(&bytes)
}
fn extensions(&self) -> &[&str] {
&["dir.ron"]
}
}