reprtree detach add list types
This commit is contained in:
parent
ca5ba52e53
commit
7a8a37d334
1 changed files with 21 additions and 3 deletions
|
@ -19,7 +19,7 @@ use {
|
|||
sync::{Arc, RwLock},
|
||||
any::Any
|
||||
},
|
||||
super::{Context, ReprLeaf, ReprTreeExt, context::{TYPEID_vec, TYPEID_char, TYPEID_u64, TYPEID_edittree}}
|
||||
super::{Context, ReprLeaf, ReprTreeExt, context::{TYPEID_list, TYPEID_vec, TYPEID_char, TYPEID_u64, TYPEID_edittree}}
|
||||
};
|
||||
|
||||
//<<<<>>>><<>><><<>><<<*>>><<>><><<>><<<<>>>>
|
||||
|
@ -192,7 +192,7 @@ impl ReprTree {
|
|||
V::Msg: Clone
|
||||
{
|
||||
while let Some(rung_type) = type_ladder.next() {
|
||||
if &rung_type != self.get_type() {
|
||||
if &rung_type != self.get_type() {
|
||||
if let Some(next_repr) = self.branches.get(&rung_type) {
|
||||
next_repr.write().unwrap().attach_leaf_to(type_ladder, src_port);
|
||||
} else {
|
||||
|
@ -285,8 +285,26 @@ impl ReprTree {
|
|||
]) {
|
||||
leaf.detach_vec::< u64 >();
|
||||
}
|
||||
else if self.type_tag == TypeTerm::App(vec![
|
||||
TypeTerm::TypeID(TYPEID_list),
|
||||
TypeTerm::TypeID(TYPEID_edittree),
|
||||
]) {
|
||||
leaf.detach::< dyn ListView<Arc<RwLock<crate::edit_tree::EditTree>>> >();
|
||||
}
|
||||
else if self.type_tag == TypeTerm::App(vec![
|
||||
TypeTerm::TypeID(TYPEID_list),
|
||||
TypeTerm::TypeID(TYPEID_char),
|
||||
]) {
|
||||
leaf.detach::< dyn ListView<char> >();
|
||||
}
|
||||
else if self.type_tag == TypeTerm::App(vec![
|
||||
TypeTerm::TypeID(TYPEID_list),
|
||||
TypeTerm::TypeID(TYPEID_u64),
|
||||
]) {
|
||||
leaf.detach::< dyn ListView<u64> >();
|
||||
}
|
||||
else {
|
||||
eprintln!("cant detach type");
|
||||
eprintln!("cant detach type {}", ctx.read().unwrap().type_term_to_str(&self.type_tag));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue