& 를 직접 *mut로 변경할수는 없는데

& as *const as *mut 하면 변경 되더라구요?

UnsafeCell 이 너무 궁금해서 보니까 실제로 코드도 그러한 방식으로 되어있구요.


해당 형변환에 대한 공식문서를 찾아보고싶었는데 따로 못찾았구요.

std 라이브러리는 고어들이 상당히 많더라구요. 예시로 box 문법같은거도 가끔 보여요 (잘은 모르지만 고어라고 알고있음).

그래서 혹시 const 원시포인터를 mut원시포인터로 바꾸는 행위를
사용해도 미래에 별 탈이 없을지 확인받고싶어서 글 올립니다.


딱히 다른 방법은 메소드나 트레잇을 뒤져보아도 찾기 힘들더라구요.

그렇다고 내부가변성을 해당 변환없이 구현 가능하냐? 하면 저는 음... 일단 제 실력으론 부족한거같아요.



*const 에서 *mut 으로 변환이 가능한 이유,

그리고 어째서 & 에서 바로 *mut 으로 변환할 수 없는지 그 배경이 조금 궁금하네요