> Что-то я не вижу тут инкапсуляции. Обрисуйте ход ваших мыслей.
> Я как-то в упор не понимю где тут что скрыто и к чему невозможно получить доступ извне (без чтения памяти процесса или какой-нибудь рефлексии). И где здесь можно получить доступ для ограниченного участка кода, которому принадлежит эта логика.Там сокрыты все поля структуры MyObject. Ты даже не знаешь как они называются. Ты даже не замечаешь их существования, судя по твоей реакции непонимания.
> Я смотрю в корень! При оперировании абстрактными сущностями в попытках декомпозиции реального мира - нужна виртуальность функций? - нужна...
"Декомпозиция мира"... Забей на эти симуляции. Начни думать алгоритмически. Виртуальность функций и динамическая типизация тебе нужна тогда, когда ты не научился мыслить вне ООП парадигмы.
Но, как бы это сказать, это дело вкуса. Ты любишь динамическую типизацию? Тогда тебе в раст лучше не соваться. Ты можешь тут собрать что-нибудь в стиле Vec<Box<dyn MyTrait>>, и потом дёргать методы этих трейтов, это не сложно. Но если ты мыслишь в стиле ООП, и по твоему любая типизация должна быть динамической, то тебе сюда не надо. Так же как тебе не стоит соваться в C. В C++ может быть, но лучше тоже не стоит. Твой выбор Java, Python, js, ruby, короче языки которые действительно дают динамическую типизацию, а не статическую плюс ещё немного, на случай когда в чисто статическую влезть не удаётся.
> Как замена ООП языков типа плюсов, шарпы, или джавы - мое личное мнение - хрена с два.
Во-во. Я о том же. Шарпы, жабы -- это удел ООП, тормозное нечто, в большинстве случаев ещё и интерпретируемое. rust'у нужна скорость.