added cartridge dto

This commit is contained in:
Nilton Constantino 2026-01-18 05:08:33 +00:00
parent 203e0835e3
commit 3e7f2a5487
No known key found for this signature in database
3 changed files with 31 additions and 4 deletions

View File

@ -18,6 +18,31 @@ pub struct Cartridge {
pub assets_path: Option<PathBuf>,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
pub struct CartridgeDTO {
pub app_id: u32,
pub title: String,
pub app_version: String,
pub app_mode: AppMode,
pub entrypoint: String,
pub program: Vec<u8>,
pub assets_path: Option<PathBuf>,
}
impl From<CartridgeDTO> for Cartridge {
fn from(dto: CartridgeDTO) -> Self {
Self {
app_id: dto.app_id,
title: dto.title,
app_version: dto.app_version,
app_mode: dto.app_mode,
entrypoint: dto.entrypoint,
program: dto.program,
assets_path: dto.assets_path,
}
}
}
#[derive(Debug)]
pub enum CartridgeError {
NotFound,

View File

@ -1,6 +1,6 @@
use std::fs;
use std::path::Path;
use crate::model::cartridge::{Cartridge, CartridgeError, CartridgeManifest};
use crate::model::cartridge::{Cartridge, CartridgeDTO, CartridgeError, CartridgeManifest};
pub struct CartridgeLoader;
@ -55,7 +55,7 @@ impl DirectoryCartridgeLoader {
None
};
Ok(Cartridge {
let dto = CartridgeDTO {
app_id: manifest.app_id,
title: manifest.title,
app_version: manifest.app_version,
@ -63,7 +63,9 @@ impl DirectoryCartridgeLoader {
entrypoint: manifest.entrypoint,
program,
assets_path,
})
};
Ok(Cartridge::from(dto))
}
}

View File

@ -10,7 +10,7 @@ mod cartridge_loader;
mod window;
pub use button::Button;
pub use cartridge::{AppMode, Cartridge, CartridgeError};
pub use cartridge::{AppMode, Cartridge, CartridgeDTO, CartridgeError};
pub use cartridge_loader::{CartridgeLoader, DirectoryCartridgeLoader, PackedCartridgeLoader};
pub use color::Color;
pub use sample::Sample;