Я использую библиотеки Rust swtweb (для взаимодействия с JavaScript) и serde-json (для работы с JSON). Оба имеют тип Value
для представления объектов JavaScript, которые очень похожи:
swtweb's Value
:
#[derive(Clone, PartialEq, Debug)]
pub enum Value {
Undefined,
Null,
Bool(bool),
Number(Number),
Symbol(Symbol),
String(String),
Reference(Reference)
}
и serde-json's Value
:
#[derive(Clone, PartialEq)]
pub enum Value {
Null,
Bool(bool),
Number(Number),
String(String),
Array(Vec<Value>),
Object(Map<String, Value>),
}
Каков подход к преобразованию экземпляров одного типа в другой? Можно ли вывести общую черту без изменения библиотек?