use crate::value::Value;
use serde::{Deserialize, Serialize};
#[derive(Debug, PartialEq, Eq, Serialize, Deserialize, Clone)]
pub enum ForeignCallOutput {
Single(Value),
Array(Vec<Value>),
}
#[derive(Debug, PartialEq, Eq, Serialize, Deserialize, Clone)]
pub struct ForeignCallResult {
pub values: Vec<ForeignCallOutput>,
}
impl From<Value> for ForeignCallResult {
fn from(value: Value) -> Self {
ForeignCallResult { values: vec![ForeignCallOutput::Single(value)] }
}
}
impl From<Vec<Value>> for ForeignCallResult {
fn from(values: Vec<Value>) -> Self {
ForeignCallResult { values: vec![ForeignCallOutput::Array(values)] }
}
}
impl From<Vec<ForeignCallOutput>> for ForeignCallResult {
fn from(values: Vec<ForeignCallOutput>) -> Self {
ForeignCallResult { values }
}
}