Size: a a a

Rust — русскоговорящее сообществo

2020 March 24

p

polunin.ai in Rust — русскоговорящее сообществo
хм, у меня есть Arena, и у меня есть несколько Vec<&mut T>, ссылки на арену. я могу как-то деструктуризировать арену чтобы у меня вышли Vec<T> по этим ссылкам?
источник

Э

Эрик in Rust — русскоговорящее сообществo
Вафель
Да можно решить как-нибудь, просто надо понять как.
Ансейф или суй данные в RefCell/Mutex и в главной ноде, как и в мелких, храни только Rc/Arc.
источник

AZ

Alex Zhukovsky in Rust — русскоговорящее сообществo
red75prime
А, ну да. Там магический WorldState
нет
источник

AZ

Alex Zhukovsky in Rust — русскоговорящее сообществo
никакого wolrdstate, это просто абстракция из учебников. Я лично с ней не воспринимаю ио
источник

Э

Эрик in Rust — русскоговорящее сообществo
polunin.ai
хм, у меня есть Arena, и у меня есть несколько Vec<&mut T>, ссылки на арену. я могу как-то деструктуризировать арену чтобы у меня вышли Vec<T> по этим ссылкам?
Если ссылки не подряд, то сортировать элементы придётся. Но дешевле может выйти просто скопировать в отсортированном виде.
источник

AZ

Alex Zhukovsky in Rust — русскоговорящее сообществo
не понимаю, почему её везде суют
источник

В

Вафель in Rust — русскоговорящее сообществo
Эрик
Просто если ты недостаточно хорош, что-нибудь упадёт. Громко, если повезёт, и тихо но очень больно, если не повезёт.
Daily remainder: люди тупые и  зачастую не понимают как работает компьютер/компилятор/etc. unsafe это такое же отличное средство почесать своё самолюбие, как и сломать что-нибудь очень серьёзно.

Не надо подходить к unsafe со стороны "компилятор мне мешает, но сейчас-то я ему покажу кто тут главный!"
источник

p

polunin.ai in Rust — русскоговорящее сообществo
Эрик
Если ссылки не подряд, то сортировать элементы придётся. Но дешевле может выйти просто скопировать в отсортированном виде.
там данных слишком много чтобы их копировать
источник

Э

Эрик in Rust — русскоговорящее сообществo
polunin.ai
там данных слишком много чтобы их копировать
Ну делай usize из &mut ссылок и свапай объекты по адресам.
источник

r

red75prime in Rust — русскоговорящее сообществo
Ну я же уже показывал в исходниках. IO и #World (или как его там) - особым образом встроены в компилятор и библиотеки
источник

Э

Эрик in Rust — русскоговорящее сообществo
Я прямо сейчас тебе сортировку не накидаю, но вроде бы должно не слишком сложно выйти через sort_unstable_by() или где-то там.
источник

AZ

Alex Zhukovsky in Rust — русскоговорящее сообществo
red75prime
Ну я же уже показывал в исходниках. IO и #World (или как его там) - особым образом встроены в компилятор и библиотеки
можно сделать свой IO
источник

AZ

Alex Zhukovsky in Rust — русскоговорящее сообществo
IO это просто айди для которого нельзя через .Value получить значение
источник

AZ

Alex Zhukovsky in Rust — русскоговорящее сообществo
что магического в struct Id<T>(T)?
источник

Э

Эрик in Rust — русскоговорящее сообществo
Правда все твои Vec<&mut T> придётся в один вектор превратить, но это же не всю арену копировать, а только ссылки.
источник

r

red75prime in Rust — русскоговорящее сообществo
Alex Zhukovsky
можно сделать свой IO
Это будет не настоящий IO, но это уже оффтоп.
источник

AZ

Alex Zhukovsky in Rust — русскоговорящее сообществo
red75prime
Это будет не настоящий IO, но это уже оффтоп.
нет никакого "настоящего ИО" как нет "настоящего maybe"
источник

Э

Эрик in Rust — русскоговорящее сообществo
Хотя нет, вру, обычная сортировка даже с _by не зайдёт, там своё писать надо.
источник

Э

Эрик in Rust — русскоговорящее сообществo
Блин, придётся всё-таки накидать сортировку прямо сейчас.
источник

Э

Эрик in Rust — русскоговорящее сообществo
Так, @p0lunin , там арена непрерывная? Ну, то есть, все Vec<&mut T>, которые ты передашь в сортировку будут указывать в итоге на один непрерывный кусок памяти? Или там могут быть дырки между ссылками?
источник