Berkus
Раст в данном контексте = СТД либа
ох уж ваша сишная привычка тащить всё в стдлибу...
Vladimir
Сказал админ с++ паблика
Ivan
а скорее явапитонная
Ivan
даже в C++ такого ада в стандартной библиотеке нету
Berkus
Сказал админ с++ паблика
ты еще и тормоз похоже
Berkus
только не сишная
да нет, это стандартная тема с++ - нет пакетного менеджера, поэтому что не в стдлибе - недоступно, надо делать велосипед
Ivan
а в C (без ++ который) вообще всё хорошо - в стандартной библиотеке почти ничего нет
Berkus
даже в C++ такого ада в стандартной библиотеке нету
просто почитай пропозалы на следующие стандарты )
Vitaliy
ещё раз спрошу - как собрать библиотеку х32 вместо х64. У меня система 64, а библиотека нужна для 32
Nikita
target правильный передать?
Kerrigan
и линкер указать для платформы
Nikita
https://github.com/japaric/rust-cross#cross-compiling-with-cargo
Nikita
скорее всего как-то так
Vitaliy
это в Cargo.toml ??
Vitaliy
https://github.com/japaric/rust-cross#cross-compiling-with-cargo
спасибо, думаю этого достаточно
Berkus
это в Cargo.toml ??
в .cargo/config и коммандлайн
պլհկ
http://cglab.ca/~abeinges/blah/too-many-lists/book/ 👆
Αλεχ
Народ чет туплю, подскажите
Αλεχ
Хочу вызывать сишный коллбек из раста
Αλεχ
пишу
Αλεχ
#[no_mangle] pub extern fn get_range<F: Fn(*const usize, usize)>(count: usize, callback: F) { let range: Vec<_> = (1..count).collect(); callback(range.as_ptr(), range.len()) }
Αλεχ
но он говнится, что no_mangle на генерике
Cuno
Так ты хочешь сишный коллбек из раста или раст-коллбек из сишки?
Αλεχ
я хочу из сишки вызвать растовую функцию, передав ей коллбек
Αλεχ
чтобы растокод вызвал коллбек
Berkus
а сишка умеет генерики уже? ништяк
Cuno
Вот, тогда тебе генерик не нужен же
Αλεχ
а как без генерика сделать?
Αλεχ
Fn это трейт
Αλεχ
а понял
Αλεχ
fn с маленькой лол
Αλεχ
#[no_mangle] pub extern fn get_range(count: usize, callback: extern fn(*const usize, usize)) { let range: Vec<_> = (1..count).collect(); callback(range.as_ptr(), range.len()) }
Cuno
extern "C" fn (*const size_t, size_t) ? Но тут нужно быть осторожным с calling convention.
Αλεχ
я на самом деле хочу вернуть вектор из раста
Αλεχ
но не хочу ебать себе мозги с владением
Αλεχ
поэтому решил просто везде захукярить коллбеки
Αλεχ
а при выходе из метода все почистится
Cuno
mem::forget не забудь
Cuno
а, понятно
Berkus
а при выходе из метода все почистится
ты передашь указатель в коллбек, надеюсь он там его не будет сохранять на будущее?
Αλεχ
данные? нет конечно
Αλεχ
я просто не хочу вызвать метод который выделит данные в расте
Αλεχ
а потом вызвать какой-нибудь drop_my_data_rust_please
Kerrigan
как мне сделать source blablaba.sh в идее перед сборкой?
Kerrigan
как-то не хочу запускать ее из шелла
Αλεχ
ты передашь указатель в коллбек, надеюсь он там его не будет сохранять на будущее?
public class RustInterop { [StructLayout(LayoutKind.Sequential)] struct ArrayRef { public IntPtr Bytes; public uint Length; } private delegate void GetRangeCallback(ArrayRef array); [DllImport("rust.dll")] private static extern int get_range(uint count, GetRangeCallback callback); public static int[] GetRange(uint count) { int[] result = null; get_range(count, arrayRef => { var res = new int[arrayRef.Length]; Marshal.Copy(arrayRef.Bytes, res, 0, res.Length); result = res; }); return result; } }
Berkus
а, норм
Berkus
воу воу
Αλεχ
you have been hacked Neo
Invictus
Зарепортил.
Loo
Зарепортил.
и что зарепортил?
Αλεχ
чувак от дотана еще не отошел просто
Invictus
Этого юзера. Или что делает кнопка Block?
Invictus
Лол, ладно. Значит я немножко ретард.
Invictus
Лол.
Vitaly
Кек
Loo
@null_void он вернулся - что дальше делать будешь?
Invictus
@null_void он вернулся - что дальше делать будешь?
Я исчерпал все средства и признаю поражение.
Alex
#Вопрос Товарищи, хочу потыкать крейт "rustbreak", а он не возбуждается. the trait bound `Foo: serde::ser::Serialize` is not satisfied e.g.: extern crate serde; extern crate serde_json; #[macro_use] extern crate serde_derive; #[derive(Serialize, Deserialize)] struct Foo { x: u8 } fn main() { let config = Database::open("test-db").unwrap(); config.insert("foo", Foo { x: 42 }); } Банально, Что я делаю не так?
Alex
( https://crates.io/crates/rustbreak )
Alex
Я по-разному пробовал.
kitsu
> возбуждается ты там что с крейтами делаешь, негодник
Alex
Ему Hyper & Futures не нужны если что.
Alex
Возможно версия Сердючки нужна другая…
Alex
> возбуждается ты там что с крейтами делаешь, негодник
Ну он (rustbreak) даже не встаёт (взлетает) !
Marat
Что-то actix-web все TLS библиотеки в себя тащит, вместо того, чтобы сделать красиво как hyper
Marat
Это ради перформанса или автор просто решил не заморачиваться?
Loo
Я по-разному пробовал.
https://github.com/LooMaclin/lapa_rs
Loo
У меня всё ок
Αλεχ
а как делает hyper?
Loo
он же в гиттере отвечает