구조체 A가 B(다른 구조체) C(임의의 타입)을 필드로 가지고 있음
근데 B가 C의 레퍼런스를 가져야함.
A정의 내부에서 B가 먼저 선언되면 drop순서상 말이 안되는건 아니잖아? 근데 컴파일러를 납득시킬수가 없음
Rc나 raw 포인터없이 어케해야됨 이거?
구조체 A가 B(다른 구조체) C(임의의 타입)을 필드로 가지고 있음
근데 B가 C의 레퍼런스를 가져야함.
A정의 내부에서 B가 먼저 선언되면 drop순서상 말이 안되는건 아니잖아? 근데 컴파일러를 납득시킬수가 없음
Rc나 raw 포인터없이 어케해야됨 이거?
일단 그런걸 수명으로 표현할수도 없고 raw pointer 따위를 쓴다해도 A가 이동하면 B가 들고있던 C의 레퍼런스가 댕글링이 돼버려서 안됨
Pin이면 ㄱㅊ?
Pin Unpin 쓸줄은 아심?
가능은한데 unsafe 필수라서 존나 잘써야함
https://doc.rust-lang.org/std/pin/index.html#example-self-referential-struct
A안에서 다 할려면 Rc 써야하고 안그럼 C를 외부에 박아놓고 A랑 B 둘다 그 &C를 갖다써야함
제일 좋은건 그런식으로 전부 구조체에 다 때려박지 말고 함수 매개변수로 C 참조를 넘겨주셈 B는 C 참조 갖지말고
ㅇㅋ