forked from rojo-rbx/rojo
Add ambiguous value resolution StringArray -> Tags (#484)
* Add ambiguous value resolution StringArray -> Tags * Remove funny autocompleted reference
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
use std::borrow::Borrow;
|
use std::borrow::Borrow;
|
||||||
|
|
||||||
use anyhow::format_err;
|
use anyhow::format_err;
|
||||||
use rbx_dom_weak::types::{Color3, Content, Enum, Variant, VariantType, Vector2, Vector3};
|
use rbx_dom_weak::types::{Color3, Content, Enum, Tags, Variant, VariantType, Vector2, Vector3};
|
||||||
use rbx_reflection::{DataType, PropertyDescriptor};
|
use rbx_reflection::{DataType, PropertyDescriptor};
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
|
|
||||||
@@ -32,6 +32,7 @@ impl UnresolvedValue {
|
|||||||
pub enum AmbiguousValue {
|
pub enum AmbiguousValue {
|
||||||
Bool(bool),
|
Bool(bool),
|
||||||
String(String),
|
String(String),
|
||||||
|
StringArray(Vec<String>),
|
||||||
Number(f64),
|
Number(f64),
|
||||||
Array2([f64; 2]),
|
Array2([f64; 2]),
|
||||||
Array3([f64; 3]),
|
Array3([f64; 3]),
|
||||||
@@ -93,6 +94,9 @@ impl AmbiguousValue {
|
|||||||
(VariantType::Int64, AmbiguousValue::Number(value)) => Ok((value as i64).into()),
|
(VariantType::Int64, AmbiguousValue::Number(value)) => Ok((value as i64).into()),
|
||||||
|
|
||||||
(VariantType::String, AmbiguousValue::String(value)) => Ok(value.into()),
|
(VariantType::String, AmbiguousValue::String(value)) => Ok(value.into()),
|
||||||
|
(VariantType::Tags, AmbiguousValue::StringArray(value)) => {
|
||||||
|
Ok(Tags::from(value).into())
|
||||||
|
}
|
||||||
(VariantType::Content, AmbiguousValue::String(value)) => {
|
(VariantType::Content, AmbiguousValue::String(value)) => {
|
||||||
Ok(Content::from(value).into())
|
Ok(Content::from(value).into())
|
||||||
}
|
}
|
||||||
@@ -129,6 +133,7 @@ impl AmbiguousValue {
|
|||||||
match self {
|
match self {
|
||||||
AmbiguousValue::Bool(_) => "a bool",
|
AmbiguousValue::Bool(_) => "a bool",
|
||||||
AmbiguousValue::String(_) => "a string",
|
AmbiguousValue::String(_) => "a string",
|
||||||
|
AmbiguousValue::StringArray(_) => "an array of strings",
|
||||||
AmbiguousValue::Number(_) => "a number",
|
AmbiguousValue::Number(_) => "a number",
|
||||||
AmbiguousValue::Array2(_) => "an array of two numbers",
|
AmbiguousValue::Array2(_) => "an array of two numbers",
|
||||||
AmbiguousValue::Array3(_) => "an array of three numbers",
|
AmbiguousValue::Array3(_) => "an array of three numbers",
|
||||||
|
|||||||
Reference in New Issue
Block a user