Size: a a a

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

2020 September 25

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Эрик
Нельзя, мутабельной ссылки нет.
Arc::get_mut
источник

R

Roman in Rust — русскоговорящее сообществo
источник

R

Roman in Rust — русскоговорящее сообществo
Можно, если умеючи )
источник

R

Roman in Rust — русскоговорящее сообществo
Вообще оч полезно. Что б вызвать код последнему владельцу чего-нибудь
источник

ST

Stanislav Tkach in Rust — русскоговорящее сообществo
Есть несколько крейтов объединённых в одном пакете, рутовый Cargo.toml - "виртуальный" (virtual manifest). Хочется выполнять код при сборке любого из крейтов (ну или всего целиком), но build.rs на этом уровне не работает.

Можно ли как-то выкрутиться красивее, чем положить build.rs к крейту от которого зависят все остальные?
источник

Э

Эрик in Rust — русскоговорящее сообществo
Stanislav Tkach
Есть несколько крейтов объединённых в одном пакете, рутовый Cargo.toml - "виртуальный" (virtual manifest). Хочется выполнять код при сборке любого из крейтов (ну или всего целиком), но build.rs на этом уровне не работает.

Можно ли как-то выкрутиться красивее, чем положить build.rs к крейту от которого зависят все остальные?
Сделать один из крейтов шапкой, чтобы не был виртуальный воркспейс?
источник

ST

Stanislav Tkach in Rust — русскоговорящее сообществo
Ну это почти то же самое, что и пихнуть build.rs к одному из крейтов?
Плюс сразу вопрос какой крейт делать "самым главным", если у меня там несколько библиотек и бинарей.
источник

D

Denis in Rust — русскоговорящее сообществo
Stanislav Tkach
Ну это почти то же самое, что и пихнуть build.rs к одному из крейтов?
Плюс сразу вопрос какой крейт делать "самым главным", если у меня там несколько библиотек и бинарей.
можно сделать "базовый" крейт с пустым lib.rs и нужным тебе build.rs, и поставить его в качестве зависимости остальным
источник

ST

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

D

Denis in Rust — русскоговорящее сообществo
в качестве альтернативы могу предложить сделать крейт (скажем, xbuild), выполняющий нужные махинации и запускающий cargo build

потом в .cargo/config добавить

[alias]
xbuild = "run --bin xbuild --"


и запускать билд не через cargo build, а через cargo xbuild

но не уверен, что это менее костыльно :)
источник

ST

Stanislav Tkach in Rust — русскоговорящее сообществo
Denis
в качестве альтернативы могу предложить сделать крейт (скажем, xbuild), выполняющий нужные махинации и запускающий cargo build

потом в .cargo/config добавить

[alias]
xbuild = "run --bin xbuild --"


и запускать билд не через cargo build, а через cargo xbuild

но не уверен, что это менее костыльно :)
Вот это любопытный способ. А прям cargo build так переопределить нельзя?
источник

D

Denis in Rust — русскоговорящее сообществo
Stanislav Tkach
Вот это любопытный способ. А прям cargo build так переопределить нельзя?
хм, а не знаю даже, не пробовал, но подозреваю, что не получится) а если вдруг получится — то как тогда запускать оригинальный билд? :)
источник

ST

Stanislav Tkach in Rust — русскоговорящее сообществo
Ну в моём случае оно и не нужно. (:

Правда тут другая проблема - это решает вопрос с cargo build, но не с cargo test, например.
источник

D

Denis in Rust — русскоговорящее сообществo
cargo xbuild build
cargo xbuild test
:)
источник

Э

Эрик in Rust — русскоговорящее сообществo
источник

c⁣

createStore<🦉>... in Rust — русскоговорящее сообществo
Denis
cargo xbuild build
cargo xbuild test
:)
тогда уж красиво сделать:

[alias]
x = "run --bin xbuild --"


чтобы cargo x build
cargo x test
источник

D

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

Э

Эрик in Rust — русскоговорящее сообществo
Мне кажется, или вы там cargo-xtask велосипедируете?
источник

IG

Igor Gulamov in Rust — русскоговорящее сообществo
Можно ли кастомизировать при помощи #[cfg] код в зависимости от overflow-checks? Например, чтобы кастомные длинные типы вели себя как native типы?

#[cfg(debug_assertions)] не подходит, потому что overflow-checks - отдельный флаг
источник

Э

Эрик in Rust — русскоговорящее сообществo
Igor Gulamov
Можно ли кастомизировать при помощи #[cfg] код в зависимости от overflow-checks? Например, чтобы кастомные длинные типы вели себя как native типы?

#[cfg(debug_assertions)] не подходит, потому что overflow-checks - отдельный флаг
источник