forked from rojo-rbx/rojo
WIP: Server plugins via rlua (Lua 5.3) (#125)
* Add 'plugins' field to project and add rlua * Scaffold out new SnapshotContext type (again) with plugin state * Almost functional snapshot system with rlua proof-of-concept * Gate plugin config on 'plugins-enabled' feature, tell Travis to test all features * Guard remaining plugin setup code behind feature * Bump minimum version to 1.33, should've caught this before * Whoops, latest Rust is 1.32, not 1.33
This commit is contained in:
committed by
GitHub
parent
7f324f1957
commit
88e739090d
@@ -64,7 +64,7 @@ impl InstanceChanges {
|
||||
|
||||
/// A lightweight, hierarchical representation of an instance that can be
|
||||
/// applied to the tree.
|
||||
#[derive(Debug, PartialEq, Serialize, Deserialize)]
|
||||
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
|
||||
pub struct RbxSnapshotInstance<'a> {
|
||||
pub name: Cow<'a, str>,
|
||||
pub class_name: Cow<'a, str>,
|
||||
@@ -73,6 +73,22 @@ pub struct RbxSnapshotInstance<'a> {
|
||||
pub metadata: MetadataPerInstance,
|
||||
}
|
||||
|
||||
impl<'a> RbxSnapshotInstance<'a> {
|
||||
pub fn get_owned(&'a self) -> RbxSnapshotInstance<'static> {
|
||||
let children: Vec<RbxSnapshotInstance<'static>> = self.children.iter()
|
||||
.map(RbxSnapshotInstance::get_owned)
|
||||
.collect();
|
||||
|
||||
RbxSnapshotInstance {
|
||||
name: Cow::Owned(self.name.clone().into_owned()),
|
||||
class_name: Cow::Owned(self.class_name.clone().into_owned()),
|
||||
properties: self.properties.clone(),
|
||||
children,
|
||||
metadata: self.metadata.clone(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl<'a> PartialOrd for RbxSnapshotInstance<'a> {
|
||||
fn partial_cmp(&self, other: &RbxSnapshotInstance) -> Option<Ordering> {
|
||||
Some(self.name.cmp(&other.name)
|
||||
|
||||
Reference in New Issue
Block a user