Size: a a a

2020 October 19

KB

Kirill Bulatov in Rust Beginners
Random Guy
Есть workspace. В нем есть несколько крейтов. Как мне конкретный крейт из него импорировать через git?
crate_name = { git = "path/to/workspace/repo", .. }
источник

RG

Random Guy in Rust Beginners
спасибо :)
источник

B

BSV in Rust Beginners
всем привет, имеется функция, которая принимает на вход data: &[u8] и аргументы, что с данными сделать (сжать, зашифровать и тд), я присваиваю file_data изначальные данные, потом if'ами пытаюсь проверить, что нужно сделать и делаю, но получаю ошибку " temporary value is freed at the end of this statement"
есть вариант написать data.to_vec(), но, при этом, будет лишнее копирование данных, чего я не хочу
как можно сделать по-другому?
источник

MB

Mikail Bagishov in Rust Beginners
Надо создать переменную вне if, а внутри if присвоить ей результат deflate_bytesinput
источник

B

BSV in Rust Beginners
а если у меня много if'ов?, скажем,
if use_deflate {
file_data = deflate(...);
}

if use_encryption {
file_data = encrypt(...);
}
и тд
источник

MB

Mikail Bagishov in Rust Beginners
То на каждый надо завести по переменной, потому что в худшем случае каждая из них может потребоваться
источник

RG

Random Guy in Rust Beginners
Есть макрос. Он вешает дерайвы на тип. Соотвественно тащит за собой serde, derive_more.
Хочется, чтобы я написал
use some_crate::my_macro;
macro!(type);

но получаю ошибку
```
  | ^^^^^^^^^^^^^^^^^^^^^^^^^ could not find derive_more in {{root}}
```
Если в Cargo.toml прописать derive_more и serde, то все прекрасно работает.
Возможно ли это как-то обойти?
источник

IB

Ivan Boldyrev in Rust Beginners
Random Guy
Есть макрос. Он вешает дерайвы на тип. Соотвественно тащит за собой serde, derive_more.
Хочется, чтобы я написал
use some_crate::my_macro;
macro!(type);

но получаю ошибку
```
  | ^^^^^^^^^^^^^^^^^^^^^^^^^ could not find derive_more in {{root}}
```
Если в Cargo.toml прописать derive_more и serde, то все прекрасно работает.
Возможно ли это как-то обойти?
Попробуй реекспортнуть соответствующие символы в твоём крейте, и использовать их. Хз, что получится.
источник

/

/bin/cat in Rust Beginners
Random Guy
Есть макрос. Он вешает дерайвы на тип. Соотвественно тащит за собой serde, derive_more.
Хочется, чтобы я написал
use some_crate::my_macro;
macro!(type);

но получаю ошибку
```
  | ^^^^^^^^^^^^^^^^^^^^^^^^^ could not find derive_more in {{root}}
```
Если в Cargo.toml прописать derive_more и serde, то все прекрасно работает.
Возможно ли это как-то обойти?
слышал, что хорошее решение это создание нового крейта под re-export макросов
источник

$

$@ in Rust Beginners
Можно ли как-то глобально выключить mangling без проставления #[no_mangle]?
источник

/

/bin/cat in Rust Beginners
Random Guy
Есть макрос. Он вешает дерайвы на тип. Соотвественно тащит за собой serde, derive_more.
Хочется, чтобы я написал
use some_crate::my_macro;
macro!(type);

но получаю ошибку
```
  | ^^^^^^^^^^^^^^^^^^^^^^^^^ could not find derive_more in {{root}}
```
Если в Cargo.toml прописать derive_more и serde, то все прекрасно работает.
Возможно ли это как-то обойти?
источник

/

/bin/cat in Rust Beginners
$@
Можно ли как-то глобально выключить mangling без проставления #[no_mangle]?
Автоматический strip?
источник

SS

Slava Sokolovsky in Rust Beginners
$@
Можно ли как-то глобально выключить mangling без проставления #[no_mangle]?
rustc -C help не умеет так
источник

$

$@ in Rust Beginners
/bin/cat
Автоматический strip?
Так стрип не менглинг уберет, а вообще все имена, нет?
источник

SS

Slava Sokolovsky in Rust Beginners
$@
Так стрип не менглинг уберет, а вообще все имена, нет?
Да
источник

SS

Slava Sokolovsky in Rust Beginners
У раста вроде как устоявшийся манглинг, так что можно утилиту написать, чтобы автоматически стирала имена как тебе будет нужно
источник

$

$@ in Rust Beginners
Так мне нужно не стирать, а оставлять оригинальные
источник

K

Kitsu in Rust Beginners
$@
Можно ли как-то глобально выключить mangling без проставления #[no_mangle]?
ээ, а зачем, если не секрет?
источник

SS

Slava Sokolovsky in Rust Beginners
$@
Так мне нужно не стирать, а оставлять оригинальные
так не стирай, а демангли, в чем проблема?
источник

$

$@ in Rust Beginners
Kitsu
ээ, а зачем, если не секрет?
Если пишу что-то, что буду вызвать из С, например
источник