tiger_lib::fileset

Trait FileHandler

Source
pub trait FileHandler<T: Send>: Sync + Send {
    // Required methods
    fn subpath(&self) -> PathBuf;
    fn load_file(&self, entry: &FileEntry, parser: &ParserMemory) -> Option<T>;
    fn handle_file(&mut self, entry: &FileEntry, loaded: T);

    // Provided methods
    fn config(&mut self, _config: &Block) { ... }
    fn finalize(&mut self) { ... }
}
Expand description

A trait for a submodule that can process files.

Required Methods§

Source

fn subpath(&self) -> PathBuf

Which files this handler is interested in. This is a directory prefix of files it wants to handle, relative to the mod or vanilla root.

Source

fn load_file(&self, entry: &FileEntry, parser: &ParserMemory) -> Option<T>

This is called for each matching file, in arbitrary order. If a T is returned, it will be passed to handle_file later. Since load_file is executed multi-threaded while handle_file is single-threaded, try to do the heavy work in this function.

Source

fn handle_file(&mut self, entry: &FileEntry, loaded: T)

This is called for each matching file in turn, in lexical order. That’s the order in which the CK3 game engine loads them too.

Provided Methods§

Source

fn config(&mut self, _config: &Block)

The FileHandler can read settings it needs from the ck3-tiger config.

Source

fn finalize(&mut self)

This is called after all files have been handled. The FileHandler can generate indexes, perform full-data checks, etc.

Implementors§

Source§

impl FileHandler<(Language, Vec<LocaEntry>)> for Localization

Source§

impl FileHandler<FileContent> for Ck3Provinces

Source§

impl FileHandler<FileContent> for ImperatorProvinces

Source§

impl FileHandler<Option<Block>> for Assets

Source§

impl FileHandler<()> for Rivers

Source§

impl FileHandler<Block> for Characters

Source§

impl FileHandler<Block> for Doctrines

Source§

impl FileHandler<Block> for GameConcepts

Source§

impl FileHandler<Block> for CharacterInteractionCategories

Source§

impl FileHandler<Block> for MenAtArmsTypes

Source§

impl FileHandler<Block> for ProvinceHistories

Source§

impl FileHandler<Block> for ProvinceProperties

Source§

impl FileHandler<Block> for ProvinceTerrains

Source§

impl FileHandler<Block> for TitleHistories

Source§

impl FileHandler<Block> for Titles

Source§

impl FileHandler<Block> for Traits

Source§

impl FileHandler<Block> for Wars

Source§

impl FileHandler<Block> for Coas

Source§

impl FileHandler<Block> for DataBindings

Source§

impl FileHandler<Block> for Defines

Source§

impl FileHandler<Block> for Events

Source§

impl FileHandler<Block> for Gui

Source§

impl FileHandler<Block> for Musics

Source§

impl FileHandler<Block> for OnActions

Source§

impl FileHandler<Block> for ScriptValues

Source§

impl FileHandler<Block> for Effects

Source§

impl FileHandler<Block> for ScriptedLists

Source§

impl FileHandler<Block> for ScriptedModifiers

Source§

impl FileHandler<Block> for Triggers

Source§

impl FileHandler<Block> for Decisions

Source§

impl FileHandler<Block> for History

Source§

impl FileHandler<DdsInfo> for DdsFiles

Source§

impl FileHandler<DynamicImage> for Vic3Provinces