Size: a a a

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

2020 August 18

AV

Andrey Vlasov in Rust — русскоговорящее сообществo
Вафель
статики всё равно const требуют
А, ну всё равно же пушить в условный вектор не получится. Туплю
источник

В

Вафель in Rust — русскоговорящее сообществo
Andrey Vlasov
А, ну всё равно же пушить в условный вектор не получится. Туплю
Да, тут только если сразу макросом массив создать, но тогда его на весь файл придётся навешивать
источник

AV

Andrey Vlasov in Rust — русскоговорящее сообществo
Вафель
Да, тут только если сразу макросом массив создать, но тогда его на весь файл придётся навешивать
А раст позволяет писать макрос, который #![macro] и на весь файл?
источник

В

Вафель in Rust — русскоговорящее сообществo
Andrey Vlasov
А раст позволяет писать макрос, который #![macro] и на весь файл?
вроде да
источник

V

Volodymyr🌼 in Rust — русскоговорящее сообществo
Привет! Подскажите: каким образом current_node.0 остается заимствованным, если он был поглощен последовательными вызовами для получения ссылки left_child?
источник

AV

Andrey Vlasov in Rust — русскоговорящее сообществo
Volodymyr🌼
Привет! Подскажите: каким образом current_node.0 остается заимствованным, если он был поглощен последовательными вызовами для получения ссылки left_child?
Если в консоли cargo check запускать, компилятор покажет, где заимствование
источник

В

Вафель in Rust — русскоговорящее сообществo
Volodymyr🌼
Привет! Подскажите: каким образом current_node.0 остается заимствованным, если он был поглощен последовательными вызовами для получения ссылки left_child?
Ты же ссылку взял внутрь него. left_child заимствует current_node.0(.left)
источник

V

Vladimir in Rust — русскоговорящее сообществo
Andrey Vlasov
А раст позволяет писать макрос, который #![macro] и на весь файл?
источник

AV

Andrey Vlasov in Rust — русскоговорящее сообществo
Грутна
источник

В

Вафель in Rust — русскоговорящее сообществo
оу
источник

V

Volodymyr🌼 in Rust — русскоговорящее сообществo
Вафель
Ты же ссылку взял внутрь него. left_child заимствует current_node.0(.left)
не понимаю, каким образом left_child заимствует current_node.0?
источник

В

Вафель in Rust — русскоговорящее сообществo
Volodymyr🌼
не понимаю, каким образом left_child заимствует current_node.0?
if let Some(ref left_child) = current_node.0.left.borrow() {}
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
current.0 был одолжен, чтобы создать ссылку на current.0.left. Та была использована методом borrow().
Ну а возвращенный им left_child действительно все еще жив, поэтому в той строке current.0 все еще одолжен
источник

MB

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

V

Volodymyr🌼 in Rust — русскоговорящее сообществo
Вот ошибка; спасибо ребята, но похоже мне потребуется бумага и ручка чтоб в этом всем разобраться, но начну я все же с кофе
источник

RP

Roman Proskuryakov in Rust — русскоговорящее сообществo
Volodymyr🌼
Вот ошибка; спасибо ребята, но похоже мне потребуется бумага и ручка чтоб в этом всем разобраться, но начну я все же с кофе
Вообще ты переменную хочешь присвоить самой себе
источник

R

Roman in Rust — русскоговорящее сообществo
По идее вот так заработает

let mut borrow = current_node.0.left.borrow():

if let Some(left_child) = &*borrow {
 ...
 let clone = Rc::clone(left_child);
 drop(borrow);
 current_node.0 = clone;
}
источник

R

Roman in Rust — русскоговорящее сообществo
То есть сначала клонируешь, потом дропаешь старый borrow, потом присваиваешь
источник

R

Roman in Rust — русскоговорящее сообществo
Roman Proskuryakov
Вообще ты переменную хочешь присвоить самой себе
Нет, он хочет левого потомка сделать текущим
источник

RP

Roman Proskuryakov in Rust — русскоговорящее сообществo
Roman
Нет, он хочет левого потомка сделать текущим
А, точно
источник