Size: a a a

2020 November 11

S[

Seer Iλya [Vennik E1... in Rust Beginners
Stas Hehera
есть 2 вектора к первому нужно переместить второй, так можно?
вектор — непрерывный участок памяти. если вектора в разных местах, как ты их соединишь?
источник

SH

Stas Hehera in Rust Beginners
да и ещё одно, можно как то из struct Something { field1: u8, field2: u8, field3: u8, field4: u8, } вернуть слайс?
источник

r

red75prime in Rust Beginners
Stas Hehera
а как переместить в вектор?
Перемещение в вектор - это тоже копирование. Но исходные значение после этого считаются невалидными (если они не Copy). Так что .extend(source.into_iter())
источник

SH

Stas Hehera in Rust Beginners
например &[u8] чтобы потом засунуть в вектор
источник

d

diabolo in Rust Beginners
Seer Iλya [Vennik E10]
вектор — непрерывный участок памяти. если вектора в разных местах, как ты их соединишь?
очень просто, если капасити первого вектора вмещают второй, то это просто memcpy в хвост первого, а это не особо дорого с точки зрения проца и памяти)
источник

S[

Seer Iλya [Vennik E1... in Rust Beginners
diabolo
очень просто, если капасити первого вектора вмещают второй, то это просто memcpy в хвост первого, а это не особо дорого с точки зрения проца и памяти)
ну всё равно будет копирование памяти
источник

SH

Stas Hehera in Rust Beginners
diabolo
очень просто, если капасити первого вектора вмещают второй, то это просто memcpy в хвост первого, а это не особо дорого с точки зрения проца и памяти)
хм... тоесть если выставить точный капасити то это будет намного лучше?)
источник

l

lulz in Rust Beginners
Stas Hehera
есть 2 вектора к первому нужно переместить второй, так можно?
[&v1[..], &v2[..]].concat()
источник

r

red75prime in Rust Beginners
Stas Hehera
хм... тоесть если выставить точный капасити то это будет намного лучше?)
extend сам выставляет capacity, но да одной реаллокации можно избежать, если сразу выставить нужную ёмкость при создании вектора
источник

d

diabolo in Rust Beginners
Seer Iλya [Vennik E10]
ну всё равно будет копирование памяти
да, но один раз и одной инструкцией проца без реалокаций памяти
источник

d

diabolo in Rust Beginners
godbolt вам поможет
источник

S[

Seer Iλya [Vennik E1... in Rust Beginners
Stas Hehera
да и ещё одно, можно как то из struct Something { field1: u8, field2: u8, field3: u8, field4: u8, } вернуть слайс?
источник

MB

Mikail Bagishov in Rust Beginners
Julian =) Coffee
Хотя это же стдлиба, ей можно
Не только ей.
RUSTC_BOOTSTRAP=1 go brrr
источник

MB

Mikail Bagishov in Rust Beginners
Есть даже багофича, что это можно выставить в build.rs
источник

НТ

Никита Тыманович... in Rust Beginners
Какой смысл в конструкции Rc<RefCell<T>> ?
источник

НТ

Никита Тыманович... in Rust Beginners
RefCell итак же может дать сколько угодно онли рид ссылок на данные
источник

r

red75prime in Rust Beginners
Никита Тыманович
RefCell итак же может дать сколько угодно онли рид ссылок на данные
Ссылки подходят только если время жизни объекта статически известно.
источник

r

red75prime in Rust Beginners
То есть он лежит где-то на стеке и будет уничтожен при выходе из соответствующей функции.
источник

MK

Marat Khayrutdinov in Rust Beginners
red75prime
То есть он лежит где-то на стеке и будет уничтожен при выходе из соответствующей функции.
из соответствующего скоупа, наверное, корретнее
источник

r

red75prime in Rust Beginners
Marat Khayrutdinov
из соответствующего скоупа, наверное, корретнее
да
источник