children: Vec<Rc<Node>>자식의 생존을 소유Weak parent는 순환을 만들지 않는 관찰 링크다
부모는 Rc<Node>로 자식을 소유하고, 자식은
Weak<Node>로 부모를 가리켜 해제를 막지 않습니다.
트리 관계
→strong · owns←weak · observes
parent: Weak<Node>upgrade()는 Some 또는 None스코프별 카운트
생성 직후
strong 1, weak 0으로 시작합니다.
branch 연결
branch는 strong 1, weak 1이고 leaf는 strong 2가 됩니다.
스코프 종료
branch strong이 0이 되어 해제되고 leaf parent는 None이 됩니다.
순환을 피하려면 소유 관계와 관찰 관계를 나눕니다. 자식에서 부모로 가는
참조는 Weak<T>로 두어 strong_count를 붙잡지 않게
합니다.