How to prevent changing my smart pointer, but not the data it points to?

Oh, I think I may have just figured it out.

I already have a couple types, SchemaRef<'pointer> and SchemaRefMut<'pointer>, which are essentially a borrow to a SchemaBox or any other value that has a schema. If I make sure to give out only SchemaRefMut, then it becomes impossible to change the pointer of the box.

I'm going to try that out and see how it works.