Rename RbxItem -> RbxInstance

This commit is contained in:
Lucien Greathouse
2018-01-03 16:01:48 -08:00
parent f00152a9ac
commit d8bcbee463
7 changed files with 24 additions and 24 deletions

View File

@@ -6,12 +6,12 @@ This is a super rough draft that I'm trying to use to lay out some of my thought
### POST `/read` ### POST `/read`
Accepts a `Vec<Route>` of items to read. Accepts a `Vec<Route>` of items to read.
Returns `Vec<Option<RbxItem>>`, in the same order as the request. Returns `Vec<Option<RbxInstance>>`, in the same order as the request.
### POST `/write` ### POST `/write`
Accepts a `Vec<{ Route, RbxItem }>` of items to write. Accepts a `Vec<{ Route, RbxInstance }>` of items to write.
I imagine that the `Name` attribute of the top-level `RbxItem` would be ignored in favor of the route name? I imagine that the `Name` attribute of the top-level `RbxInstance` would be ignored in favor of the route name?
## CLI ## CLI
The `rojo serve` command uses three major components: The `rojo serve` command uses three major components:
@@ -21,7 +21,7 @@ The `rojo serve` command uses three major components:
### Transform Plugins ### Transform Plugins
Transform plugins (or filter plugins?) can interject in three places: Transform plugins (or filter plugins?) can interject in three places:
* Transform a `VfsItem` that's being read into an `RbxItem` in the VFS * Transform a `VfsItem` that's being read into an `RbxInstance` in the VFS
* Transform an `Rbxitem` that's being written into a `VfsItem` in the VFS * Transform an `Rbxitem` that's being written into a `VfsItem` in the VFS
* Transform a file change into paths that need to be updated in the VFS watcher * Transform a file change into paths that need to be updated in the VFS watcher

View File

@@ -1,10 +1,10 @@
use rbx::RbxItem; use rbx::RbxInstance;
use vfs::VfsItem; use vfs::VfsItem;
use core::Route; use core::Route;
// TODO: Add error case? // TODO: Add error case?
pub enum TransformFileResult { pub enum TransformFileResult {
Value(Option<RbxItem>), Value(Option<RbxInstance>),
Pass, Pass,
} }
@@ -20,7 +20,7 @@ pub enum FileChangeResult {
pub trait Plugin { pub trait Plugin {
fn transform_file(&self, plugins: &PluginChain, vfs_item: &VfsItem) -> TransformFileResult; fn transform_file(&self, plugins: &PluginChain, vfs_item: &VfsItem) -> TransformFileResult;
fn handle_rbx_change(&self, route: &Route, rbx_item: &RbxItem) -> RbxChangeResult; fn handle_rbx_change(&self, route: &Route, rbx_item: &RbxInstance) -> RbxChangeResult;
fn handle_file_change(&self, route: &Route) -> FileChangeResult; fn handle_file_change(&self, route: &Route) -> FileChangeResult;
} }
@@ -35,7 +35,7 @@ impl PluginChain {
} }
} }
pub fn transform_file(&self, vfs_item: &VfsItem) -> Option<RbxItem> { pub fn transform_file(&self, vfs_item: &VfsItem) -> Option<RbxInstance> {
for plugin in &self.plugins { for plugin in &self.plugins {
match plugin.transform_file(self, vfs_item) { match plugin.transform_file(self, vfs_item) {
TransformFileResult::Value(rbx_item) => return rbx_item, TransformFileResult::Value(rbx_item) => return rbx_item,
@@ -46,7 +46,7 @@ impl PluginChain {
None None
} }
pub fn handle_rbx_change(&self, route: &Route, rbx_item: &RbxItem) -> Option<VfsItem> { pub fn handle_rbx_change(&self, route: &Route, rbx_item: &RbxInstance) -> Option<VfsItem> {
for plugin in &self.plugins { for plugin in &self.plugins {
match plugin.handle_rbx_change(route, rbx_item) { match plugin.handle_rbx_change(route, rbx_item) {
RbxChangeResult::Write(vfs_item) => return vfs_item, RbxChangeResult::Write(vfs_item) => return vfs_item,

View File

@@ -2,7 +2,7 @@ use std::collections::HashMap;
use core::Route; use core::Route;
use plugin::{Plugin, PluginChain, TransformFileResult, RbxChangeResult, FileChangeResult}; use plugin::{Plugin, PluginChain, TransformFileResult, RbxChangeResult, FileChangeResult};
use rbx::{RbxItem, RbxValue}; use rbx::{RbxInstance, RbxValue};
use vfs::VfsItem; use vfs::VfsItem;
/// A plugin with simple transforms: /// A plugin with simple transforms:
@@ -26,7 +26,7 @@ impl Plugin for DefaultPlugin {
value: contents.clone(), value: contents.clone(),
}); });
TransformFileResult::Value(Some(RbxItem { TransformFileResult::Value(Some(RbxInstance {
name: vfs_item.name().clone(), name: vfs_item.name().clone(),
class_name: "StringValue".to_string(), class_name: "StringValue".to_string(),
children: Vec::new(), children: Vec::new(),
@@ -45,7 +45,7 @@ impl Plugin for DefaultPlugin {
} }
} }
TransformFileResult::Value(Some(RbxItem { TransformFileResult::Value(Some(RbxInstance {
name: vfs_item.name().clone(), name: vfs_item.name().clone(),
class_name: "Folder".to_string(), class_name: "Folder".to_string(),
children: rbx_children, children: rbx_children,
@@ -59,7 +59,7 @@ impl Plugin for DefaultPlugin {
FileChangeResult::MarkChanged(Some(vec![route.clone()])) FileChangeResult::MarkChanged(Some(vec![route.clone()]))
} }
fn handle_rbx_change(&self, _route: &Route, _rbx_item: &RbxItem) -> RbxChangeResult { fn handle_rbx_change(&self, _route: &Route, _rbx_item: &RbxInstance) -> RbxChangeResult {
RbxChangeResult::Pass RbxChangeResult::Pass
} }
} }

View File

@@ -3,7 +3,7 @@ use serde_json;
use core::Route; use core::Route;
use plugin::{Plugin, PluginChain, TransformFileResult, RbxChangeResult, FileChangeResult}; use plugin::{Plugin, PluginChain, TransformFileResult, RbxChangeResult, FileChangeResult};
use rbx::{RbxItem, RbxValue}; use rbx::{RbxInstance, RbxValue};
use vfs::VfsItem; use vfs::VfsItem;
lazy_static! { lazy_static! {
@@ -27,7 +27,7 @@ impl Plugin for JsonModelPlugin {
None => return TransformFileResult::Pass, None => return TransformFileResult::Pass,
}; };
let mut rbx_item: RbxItem = match serde_json::from_str(contents) { let mut rbx_item: RbxInstance = match serde_json::from_str(contents) {
Ok(v) => v, Ok(v) => v,
Err(_) => { Err(_) => {
eprintln!("Unable to parse JSON Model File named {}", vfs_item.name()); eprintln!("Unable to parse JSON Model File named {}", vfs_item.name());
@@ -50,7 +50,7 @@ impl Plugin for JsonModelPlugin {
FileChangeResult::Pass FileChangeResult::Pass
} }
fn handle_rbx_change(&self, _route: &Route, _rbx_item: &RbxItem) -> RbxChangeResult { fn handle_rbx_change(&self, _route: &Route, _rbx_item: &RbxInstance) -> RbxChangeResult {
RbxChangeResult::Pass RbxChangeResult::Pass
} }
} }

View File

@@ -4,7 +4,7 @@ use regex::Regex;
use core::Route; use core::Route;
use plugin::{Plugin, PluginChain, TransformFileResult, RbxChangeResult, FileChangeResult}; use plugin::{Plugin, PluginChain, TransformFileResult, RbxChangeResult, FileChangeResult};
use rbx::{RbxItem, RbxValue}; use rbx::{RbxInstance, RbxValue};
use vfs::VfsItem; use vfs::VfsItem;
lazy_static! { lazy_static! {
@@ -49,7 +49,7 @@ impl Plugin for ScriptPlugin {
value: contents.clone(), value: contents.clone(),
}); });
TransformFileResult::Value(Some(RbxItem { TransformFileResult::Value(Some(RbxInstance {
name: rbx_name, name: rbx_name,
class_name: class_name, class_name: class_name,
children: Vec::new(), children: Vec::new(),
@@ -117,7 +117,7 @@ impl Plugin for ScriptPlugin {
} }
} }
fn handle_rbx_change(&self, _route: &Route, _rbx_item: &RbxItem) -> RbxChangeResult { fn handle_rbx_change(&self, _route: &Route, _rbx_item: &RbxInstance) -> RbxChangeResult {
RbxChangeResult::Pass RbxChangeResult::Pass
} }
} }

View File

@@ -2,10 +2,10 @@ use std::collections::HashMap;
#[derive(Debug, Serialize, Deserialize)] #[derive(Debug, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")] #[serde(rename_all = "camelCase")]
pub struct RbxItem { pub struct RbxInstance {
pub name: String, pub name: String,
pub class_name: String, pub class_name: String,
pub children: Vec<RbxItem>, pub children: Vec<RbxInstance>,
pub properties: HashMap<String, RbxValue>, pub properties: HashMap<String, RbxValue>,
} }

View File

@@ -8,7 +8,7 @@ use serde_json;
use core::Config; use core::Config;
use project::Project; use project::Project;
use vfs::{Vfs, VfsChange}; use vfs::{Vfs, VfsChange};
use rbx::RbxItem; use rbx::RbxInstance;
use plugin::PluginChain; use plugin::PluginChain;
static MAX_BODY_SIZE: usize = 25 * 1024 * 1024; // 25 MiB static MAX_BODY_SIZE: usize = 25 * 1024 * 1024; // 25 MiB
@@ -26,7 +26,7 @@ struct ServerInfo<'a> {
#[derive(Debug, Serialize)] #[derive(Debug, Serialize)]
#[serde(rename_all = "camelCase")] #[serde(rename_all = "camelCase")]
struct ReadResult<'a> { struct ReadResult<'a> {
items: Vec<Option<RbxItem>>, items: Vec<Option<RbxInstance>>,
server_id: &'a str, server_id: &'a str,
current_time: f64, current_time: f64,
} }
@@ -43,7 +43,7 @@ struct ChangesResult<'a> {
#[serde(rename_all = "camelCase")] #[serde(rename_all = "camelCase")]
struct WriteSpecifier { struct WriteSpecifier {
route: String, route: String,
item: RbxItem, item: RbxInstance,
} }
fn json<T: serde::Serialize>(value: T) -> rouille::Response { fn json<T: serde::Serialize>(value: T) -> rouille::Response {