Compare commits
1 commit
2749e41fce
...
7226cb0162
Author | SHA1 | Date | |
---|---|---|---|
7226cb0162 |
2 changed files with 11 additions and 43 deletions
|
@ -1,11 +1,8 @@
|
||||||
use {
|
use {
|
||||||
laddertypes::{TypeTerm, TypeID, morphism::Morphism},
|
laddertypes::{TypeTerm, TypeID, morphism::Morphism},
|
||||||
r3vi::view::{AnyOuterViewPort, port::*, list::*},
|
r3vi::view::{AnyOuterViewPort, port::UpdateTask},
|
||||||
crate::{
|
crate::{
|
||||||
repr_tree::{
|
repr_tree::{ReprTree, ReprTreeExt, ReprLeaf},
|
||||||
ReprTree, ReprTreeExt, ReprLeaf,
|
|
||||||
context::{*}
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
std::{
|
std::{
|
||||||
sync::{Arc, RwLock},
|
sync::{Arc, RwLock},
|
||||||
|
|
|
@ -248,45 +248,16 @@ impl ReprTree {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn detach(&mut self, ctx: &Arc<RwLock<Context>>) {
|
pub fn detach(&mut self, ctx: &Arc<RwLock<Context>>) {
|
||||||
|
// eprintln!("DETACH {:?}", self.get_type());
|
||||||
if let Some(leaf) = self.leaf.as_mut() {
|
if let Some(leaf) = self.leaf.as_mut() {
|
||||||
if self.type_tag ==
|
if self.type_tag == Context::parse(&ctx, "Char") {
|
||||||
TypeTerm::TypeID(TYPEID_edittree)
|
|
||||||
{
|
|
||||||
leaf.detach::< dyn SingletonView<
|
|
||||||
Item = Arc<RwLock< crate::edit_tree::EditTree >>
|
|
||||||
> >();
|
|
||||||
}
|
|
||||||
else if self.type_tag ==
|
|
||||||
TypeTerm::TypeID(TYPEID_char)
|
|
||||||
{
|
|
||||||
leaf.detach::<dyn SingletonView<Item = char>>();
|
leaf.detach::<dyn SingletonView<Item = char>>();
|
||||||
}
|
}
|
||||||
else if self.type_tag == TypeTerm::TypeID(TYPEID_u64)
|
if self.type_tag == Context::parse(&ctx, "<Vec Char>") {
|
||||||
{
|
|
||||||
leaf.detach::< dyn SingletonView<Item = u64> >();
|
|
||||||
}
|
|
||||||
else if self.type_tag == TypeTerm::App(vec![
|
|
||||||
TypeTerm::TypeID(TYPEID_vec),
|
|
||||||
TypeTerm::TypeID(TYPEID_edittree),
|
|
||||||
]) {
|
|
||||||
leaf.detach_vec::<
|
|
||||||
Arc<RwLock< crate::edit_tree::EditTree >>
|
|
||||||
>();
|
|
||||||
}
|
|
||||||
else if self.type_tag == TypeTerm::App(vec![
|
|
||||||
TypeTerm::TypeID(TYPEID_vec),
|
|
||||||
TypeTerm::TypeID(TYPEID_char),
|
|
||||||
]) {
|
|
||||||
leaf.detach_vec::<char>();
|
leaf.detach_vec::<char>();
|
||||||
}
|
}
|
||||||
else if self.type_tag == TypeTerm::App(vec![
|
if self.type_tag == Context::parse(&ctx, "<List Char>") {
|
||||||
TypeTerm::TypeID(TYPEID_vec),
|
leaf.detach::<dyn ListView<char>>();
|
||||||
TypeTerm::TypeID(TYPEID_u64),
|
|
||||||
]) {
|
|
||||||
leaf.detach_vec::< u64 >();
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
eprintln!("cant detach type");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue