Size: a a a

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

2020 October 01

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Vitaly
не как не поменяется, тыд коллекции предлагаешь давать доступы к памяти
Было: Global.alloc(...)
Стало: self.alloc.alloc(...)
Не вижу принципиальной разницы.
источник

V

Vitaly in Rust — русскоговорящее сообществo
Mikail Bagishov
Было: Global.alloc(...)
Стало: self.alloc.alloc(...)
Не вижу принципиальной разницы.
тут и я не вижу )
источник

D

Denis in Rust — русскоговорящее сообществo
Mikail Bagishov
А мы никуда из реальности не уходим.
К сожалению, AllocRef пока не стабильна, но можно заабьюзить GlobalAlloc для этого.
> но можно заабьюзить GlobalAlloc для этого

это как?
источник

V

Vitaly in Rust — русскоговорящее сообществo
вопрос в другом: зачем коллекциям аллокатор если они могут напрямую писать в туже память?
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Vitaly
тут и я не вижу )
Вот и мне непонятна суть твоих претензий.
Ты пишешь

> ты коллекции предлагаешь давать доступы к памяти

Как будто сейчас это как-то по-другому работает
источник

D

Denis in Rust — русскоговорящее сообществo
Vitaly
вопрос в другом: зачем коллекциям аллокатор если они могут напрямую писать в туже память?
в случаях fixed-capacity — ни за чем, в случаях переменной ёмкости — надеюсь, это очевидно )
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Denis
> но можно заабьюзить GlobalAlloc для этого

это как?
struct Vec<T, A: GlobalAlloc> {}
impl Vec {
fn new(alloc: A){
}

}
И дальше вся работа идет через этот alloc
источник

V

Vitaly in Rust — русскоговорящее сообществo
Denis
в случаях fixed-capacity — ни за чем, в случаях переменной ёмкости — надеюсь, это очевидно )
так коллекция и так по сути реализует аллокатор, зачем еще одна прослойка?
источник

D

Denis in Rust — русскоговорящее сообществo
Mikail Bagishov
struct Vec<T, A: GlobalAlloc> {}
impl Vec {
fn new(alloc: A){
}

}
И дальше вся работа идет через этот alloc
а что это за волшебный вектор такой?
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Vitaly
вопрос в другом: зачем коллекциям аллокатор если они могут напрямую писать в туже память?
Чтобы пользователь мог гибко настраивать детали управления памятью.
источник

D

Denis in Rust — русскоговорящее сообществo
Vitaly
так коллекция и так по сути реализует аллокатор, зачем еще одна прослойка?
...
источник

V

Vitaly in Rust — русскоговорящее сообществo
Mikail Bagishov
Чтобы пользователь мог гибко настраивать детали управления памятью.
как в плюсах? ))
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Denis
а что это за волшебный вектор такой?
Это полная копия Vec, которая все аллоки-деаллоки-реаллоки делает через переданный ей аллокатор.

Существует ли такой уже написанный - не знаю.
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Vitaly
как в плюсах? ))
Ну в общем-то да, там stl контейнеры берут аллокатор на вход.
источник

D

Denis in Rust — русскоговорящее сообществo
Mikail Bagishov
Это полная копия Vec, которая все аллоки-деаллоки-реаллоки делает через переданный ей аллокатор.

Существует ли такой уже написанный - не знаю.
ну тогда не ".. но можно заабьюзить GlobalAlloc для этого", а "переписать коллекции так, чтобы они принимали аллокатор  в качестве дженерик-аргумента" :)
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Vitaly
так коллекция и так по сути реализует аллокатор, зачем еще одна прослойка?
Коллекции обычно сильно выше уровнем
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Denis
ну тогда не ".. но можно заабьюзить GlobalAlloc для этого", а "переписать коллекции так, чтобы они принимали аллокатор  в качестве дженерик-аргумента" :)
Ну да.
Просто правильно было бы брать AllocRef, но он анстейбл.
источник

D

Denis in Rust — русскоговорящее сообществo
ок, недопонимание resolved )
источник

b

in Rust — русскоговорящее сообществo
привет, так не получается, но я хочу чтобы на выходе остался исходный вектор без элементов из file_vec, но map хочет получать в обоих случаях String, может мне следует использовать другую функцию, не map? подскажите плиз

UPD: решено, надо юзать filter и возвращать bool
источник

DF

Dollar Føølish in Rust — русскоговорящее сообществo
што за AllocRef расскажите вкрации
источник