Implement handle_rbx_change API for plugins as a pass

This commit is contained in:
Lucien Greathouse
2017-12-20 22:11:46 -08:00
parent b885cae086
commit aaaf3ba0b9
3 changed files with 27 additions and 2 deletions

View File

@@ -7,6 +7,11 @@ pub enum TransformFileResult {
Pass,
}
pub enum RbxChangeResult {
Write(Option<VfsItem>),
Pass,
}
pub enum FileChangeResult {
MarkChanged(Option<Vec<Route>>),
Pass,
@@ -14,6 +19,7 @@ pub enum FileChangeResult {
pub trait Plugin {
fn transform_file(&self, plugins: &PluginChain, vfs_item: &VfsItem) -> TransformFileResult;
fn handle_rbx_change(&self, route: &Route, rbx_item: &RbxItem) -> RbxChangeResult;
fn handle_file_change(&self, route: &Route) -> FileChangeResult;
}
@@ -39,6 +45,17 @@ impl PluginChain {
None
}
pub fn handle_rbx_change(&self, route: &Route, rbx_item: &RbxItem) -> Option<VfsItem> {
for plugin in &self.plugins {
match plugin.handle_rbx_change(route, rbx_item) {
RbxChangeResult::Write(vfs_item) => return vfs_item,
RbxChangeResult::Pass => {},
}
}
None
}
pub fn handle_file_change(&self, route: &Route) -> Option<Vec<Route>> {
for plugin in &self.plugins {
match plugin.handle_file_change(route) {

View File

@@ -1,7 +1,7 @@
use std::collections::HashMap;
use core::Route;
use plugin::{Plugin, PluginChain, TransformFileResult, FileChangeResult};
use plugin::{Plugin, PluginChain, TransformFileResult, RbxChangeResult, FileChangeResult};
use rbx::{RbxItem, RbxValue};
use vfs::VfsItem;
@@ -58,4 +58,8 @@ impl Plugin for DefaultPlugin {
fn handle_file_change(&self, route: &Route) -> FileChangeResult {
FileChangeResult::MarkChanged(Some(vec![route.clone()]))
}
fn handle_rbx_change(&self, route: &Route, rbx_item: &RbxItem) -> RbxChangeResult {
RbxChangeResult::Pass
}
}

View File

@@ -3,7 +3,7 @@ use std::collections::HashMap;
use regex::Regex;
use core::Route;
use plugin::{Plugin, PluginChain, TransformFileResult, FileChangeResult};
use plugin::{Plugin, PluginChain, TransformFileResult, RbxChangeResult, FileChangeResult};
use rbx::{RbxItem, RbxValue};
use vfs::VfsItem;
@@ -114,4 +114,8 @@ impl Plugin for ScriptPlugin {
FileChangeResult::Pass
}
}
fn handle_rbx_change(&self, route: &Route, rbx_item: &RbxItem) -> RbxChangeResult {
RbxChangeResult::Pass
}
}