պլհկ
Вся логика в lib все равно, иноды что ли экономить
Сережа
https://doc.rust-lang.org/book/first-edition/conditional-compilation.html а это?
Alexander
Но ведь всё равно надо держать два бинарники, даже если небольших.
Alexander
https://doc.rust-lang.org/book/first-edition/conditional-compilation.html а это?
Хм, спасибо. Похоже, сейчас почитаю.
Сережа
#[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ко
Но !cfg - написано только boolean
Как написано — так и есть.
Сережа
а почему ты все это хочешь делать именно на расте?
Alexander
Потому что у меня всё там только на расте :)
Cat
в качестве шага в сторону, можно выбирать функцию в рантайме, имея один бинарник
Cat
если таких функций много, то это конеш не удобно
Alexander
Ещё можно вопрос: макрос - остановить компиляцию? - никак не найду.
Alexander
#[cfg not variant#] #error stop . Типа того
Alexander
compile_error
Маjко
Тоже не знаю.. Можно закостылять
Маjко
let _: () = "error message"
Маjко
Компилер тут упадет
Anonymous
так compile_error же
Anonymous
в std
Маjко
так compile_error же
Спс, я думал это он пример привел чего хочет
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
Anton
это интерфейс для сисколов в редоксе (genius)
сериосли? теперь понятно зачем он всем
Cat
За советами к нему ходим посоны
всё что угодно за ваши деньги
Cat
сериосли? теперь понятно зачем он всем
ну хз, я встречал только в низкоуровневых библиотеках, которые через cfg компилируются для разных платформ
Cat
в частности и для редокса
Cat
сорри(((
Anton
Очень многие крейты ссылаются на redox_syscall кто ковырял, что там такого особенного?
Ничего интересного крейты ссылаются на chrono, chrono на time, а time подеерживает redox #[cfg(target_os = "redox")] extern crate syscall; #[cfg(unix)] extern crate libc; #[cfg(windows)] extern crate winapi; #[cfg(feature = "rustc-serialize")] extern crate rustc_serialize;
Loo
Loo
Лучше сразу вздернуться
Loo
Loo
УДОБНО ЧТО ТАМ ЕСТЬ ПОЧТА
Loo
Вахахахах
strcpy
говорят в германии поднялись зарплаты на кобол разрабов из-за вымирания динозавров
Loo
Loo
ОСНОВНОЙ БУДУЩИЙ КОНКУРЕНТ ПО УТИЛИЗАЦИИ МНОГОЯДЕРНЫХ СИСТЕМ
Kerrigan
орнул с утилизации
Loo
Loo
Да что с этим миром не так
Loo
ВСТРАИВАНИЕ ИНТЕПРЕТАТОРА JS В ГО ДЛЯ РЕАЛИЗАЦИИ БИЗНЕС ЛОГИКИ
doc
Ор выше гор
Cat
Как известно, всякая большая программа содержит в себе кривонаписанный интерпретатор лиспа. Почему бы и не JS? 🤔...
պլհկ
Проиграл
Kerrigan
я так делал
Kerrigan
только с луа
Kerrigan
но сначала хотел жс
Kerrigan
но потом увидел какой там ад и сколько весит v8
Anton
Помогите побороть ошибки компилятора, а то я тупой
Andrei
был программист, начал писать на Go, вовремя не опомнился и не сбежал — всё, нет программиста
Anton
Пытаюсь заимплментить serde::de::Deserialize. Там метод deserialize возвращает Result с D::Error. Я так понял, что это associated type, который мне надо ему указать. Пишу внутри impl'а type Error = MyError а он мне пишет, что not a member of trait Deserialize
Anton
Главу про ассоциированные типы два раза перечитал