Size: a a a

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

2020 August 23

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Ну а еще должен сказать, что
1) Лучше использовать какие-нибудь другие каналы, например crossbeam-ные (lib.rs/crossbeam-channel).
2) Аналогом горутины (то есть дешевой кооперативной многозадачностью) в расте является не поток, а таска в асинхронном рантайме, например lib.rs/tokio.
источник

b

in Rust — русскоговорящее сообществo
да,понимаю,что есть крейты для этого всего, просто хотелось multi-consumer multi-producer, так как надо чтобы с этих потоков еще обратно в tx данные посылались, которые не подходят допустим, но немного измененные.
источник

S

Sergey in Rust — русскоговорящее сообществo
привет, столкнулся с проблемкой. Может кто-то сможет помочь
В общем есть функция для создания коннекшина к базе

Вроде все должно быть впорядке, но раст ругается при компиляции:
error[E0515]: cannot return value referencing local variable conn
 --> app/src/beans/mod.rs:32:9
  |
31 |         let conn_result = conn.db(collection.as_str()).await.expect(&format!("Error connecting to database: {}", url));
  |                           ---- conn is borrowed here
32 |         conn_result
  |         ^^^^^^^^^^^ returns a value referencing data owned by the current function


Может кто-то знает как это решить?
источник

ND

Nikita Davidenko in Rust — русскоговорящее сообществo
Is there any way to return a reference to a variable created in a function? - Stack Overflow
https://stackoverflow.com/questions/32682876/is-there-any-way-to-return-a-reference-to-a-variable-created-in-a-function
источник

ND

Nikita Davidenko in Rust — русскоговорящее сообществo
Sergey
привет, столкнулся с проблемкой. Может кто-то сможет помочь
В общем есть функция для создания коннекшина к базе

Вроде все должно быть впорядке, но раст ругается при компиляции:
error[E0515]: cannot return value referencing local variable conn
 --> app/src/beans/mod.rs:32:9
  |
31 |         let conn_result = conn.db(collection.as_str()).await.expect(&format!("Error connecting to database: {}", url));
  |                           ---- conn is borrowed here
32 |         conn_result
  |         ^^^^^^^^^^^ returns a value referencing data owned by the current function


Может кто-то знает как это решить?
Попробуй
источник

JC

Julian =) Coffee in Rust — русскоговорящее сообществo
оу шит, это же UB
источник

JC

Julian =) Coffee in Rust — русскоговорящее сообществo
Sergey
привет, столкнулся с проблемкой. Может кто-то сможет помочь
В общем есть функция для создания коннекшина к базе

Вроде все должно быть впорядке, но раст ругается при компиляции:
error[E0515]: cannot return value referencing local variable conn
 --> app/src/beans/mod.rs:32:9
  |
31 |         let conn_result = conn.db(collection.as_str()).await.expect(&format!("Error connecting to database: {}", url));
  |                           ---- conn is borrowed here
32 |         conn_result
  |         ^^^^^^^^^^^ returns a value referencing data owned by the current function


Может кто-то знает как это решить?
conn.db принимает conn по ссылке, conn выделен на стэке

значит получается, что лайфтайм conn_result зависит от conn (который равен лайфтайму скоупа)
источник

JC

Julian =) Coffee in Rust — русскоговорящее сообществo
как костыль можно заюзать clone с дипкопи, но возможно есть пути получше, которые описаны в документации
источник

JC

Julian =) Coffee in Rust — русскоговорящее сообществo
да и непонятно какая логика у establish_jwt, может там надо по особому это делать
источник

В

Вафель in Rust — русскоговорящее сообществo
Хм, а в расте можно сделать тип идентичный [u8] но с aligment'ом usize'а?
источник

V

Vladimir in Rust — русскоговорящее сообществo
Вафель
Хм, а в расте можно сделать тип идентичный [u8] но с aligment'ом usize'а?
источник

Э

Эрик in Rust — русскоговорящее сообществo
Вафель
Хм, а в расте можно сделать тип идентичный [u8] но с aligment'ом usize'а?
#[align()]
struct UsizeAlignedByte(u8);
источник

Э

Эрик in Rust — русскоговорящее сообществo
И потом слайсу. Нет?
источник

Э

Эрик in Rust — русскоговорящее сообществo
Правда у usize же align меняется, а я не помню, чтобы в расте можно было динамическую штуку в прок макросах делать.
источник

В

Вафель in Rust — русскоговорящее сообществo
Эрик
И потом слайсу. Нет?
Нет наверное. Тогда у него размер тоже 8 будет
источник

Э

Эрик in Rust — русскоговорящее сообществo
А, тебе именно слайсу align'уть надо?
источник

В

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

Э

Эрик in Rust — русскоговорящее сообществo
Ну это только напрямую через Layout и аллокатор, тебе ссылку уже дали.
источник

В

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

В

Вафель in Rust — русскоговорящее сообществo
Я просто с чем извращаюсь: я пытаюсь в начале [u8] хранить некоторое количество usize.

Со-но для этого у слайса должен быть aligment usize
источник