պլհկ
Вся логика в lib все равно, иноды что ли экономить
Сережа
https://doc.rust-lang.org/book/first-edition/conditional-compilation.html
а это?
Alexander
Но ведь всё равно надо держать два бинарники, даже если небольших.
Alexander
Сережа
#[cfg(feature = "foo")]
mod foo {
}
If we compile it with cargo build --features "foo", it will send the --cfg feature="foo" flag to rustc, and the output will have the mod foo in it. If we compile it with a regular cargo build, no extra flags get passed on, and so, no foo module will exist.
Сережа
тебе 2 таких фичи сделать foo1 и foo2 и для них один и тот же мод переопределять в компайл тайме
Сережа
или я тебя недопонял
Alexander
А можно не две фичи, а у одной фичи иметь какое-то значение? Типа variant1 и variant2 ?
Alexander
Сережа
https://doc.rust-lang.org/reference/attributes.html#conditional-compilation
Сережа
вроде бы вот похожая функциональность
Alexander
Можно ещё более дурацкий вопрос? Идея появилась: в фиче писать variant=f2, например, и в коде прямо вызывать !cfg(variant)() ?
Alexander
Но !cfg - написано только boolean
Маjко
Сережа
а почему ты все это хочешь делать именно на расте?
Alexander
Потому что у меня всё там только на расте :)
Cat
в качестве шага в сторону, можно выбирать функцию в рантайме, имея один бинарник
Cat
если таких функций много, то это конеш не удобно
Alexander
Ещё можно вопрос: макрос - остановить компиляцию? - никак не найду.
Alexander
#[cfg not variant#] #error stop . Типа того
Alexander
compile_error
Маjко
Тоже не знаю..
Можно закостылять
Маjко
let _: () = "error message"
Маjко
Компилер тут упадет
Anonymous
так compile_error же
Anonymous
в std
Alexander
Просто некоторые вещи что-то тяжело гуглятся. Сорян.
Сережа
https://crates.io/crates/static_assert_macro
Сережа
?
Vladimir
?
Зависит от того что он хочет
Vladimir
Компиллер эрор работает ток для атрибутов, т.е может фейлится по включению фичи
Vladimir
Ну а Статик ассерт круче
分解物質
как сделать пул реквест в гитхаб репу не форкая её в свой гитхаб профиль?
Stanislav
Stanislav
чтобы сделать бранч и оттуда ПР
Stanislav
а подругому никак
分解物質
(
Illia (ALFer)
git clone
git checkout -b ___
...changes...
git add *
git commit -am "___"
git push -u origin ___
...
PROFIT
分解物質
Illia (ALFer)
Ну если есть права, то зайдя на github ты сможешь из этого бранча сделать PR
Anton
Очень многие крейты ссылаются на redox_syscall кто ковырял, что там такого особенного?
Cat
это интерфейс для сисколов в редоксе (genius)
Loo
Loo
Красиво объяснил
Loo
За советами к нему ходим посоны
Loo
Anton
Cat
Cat
в частности и для редокса
Cat
сорри(((
Loo
Loo
Loo
Loo
УДОБНО ЧТО ТАМ ЕСТЬ ПОЧТА
Loo
Вахахахах
strcpy
говорят в германии поднялись зарплаты на кобол разрабов из-за вымирания динозавров
Loo
Loo
ОСНОВНОЙ БУДУЩИЙ КОНКУРЕНТ ПО УТИЛИЗАЦИИ МНОГОЯДЕРНЫХ СИСТЕМ
Kerrigan
орнул с утилизации
Loo
Loo
Да что с этим миром не так
Loo
ВСТРАИВАНИЕ ИНТЕПРЕТАТОРА JS В ГО ДЛЯ РЕАЛИЗАЦИИ БИЗНЕС ЛОГИКИ
doc
Ор выше гор
Cat
Как известно, всякая большая программа содержит в себе кривонаписанный интерпретатор лиспа. Почему бы и не JS? 🤔...
պլհկ
Kerrigan
Kerrigan
только с луа
Kerrigan
но сначала хотел жс
Kerrigan
но потом увидел какой там ад и сколько весит v8
Anton
Помогите побороть ошибки компилятора, а то я тупой
Andrei
Andrei
был программист, начал писать на Go, вовремя не опомнился и не сбежал — всё, нет программиста
Loo
Loo
kitsu
Anton
Пытаюсь заимплментить serde::de::Deserialize. Там метод deserialize возвращает Result с D::Error. Я так понял, что это associated type, который мне надо ему указать. Пишу внутри impl'а
type Error = MyError
а он мне пишет, что
not a member of trait Deserialize
Anton
Главу про ассоциированные типы два раза перечитал