Size: a a a

2017 November 22

AS

Andrew Strokov in embedded.rs
чего странное?
источник

AS

Andrew Strokov in embedded.rs
rust язык с концепцией абстракций с нулевой стоимостью, и куча всего при компиляции проверяется
источник

AS

Andrew Strokov in embedded.rs
это не к типам заявка, а к формированию значений
источник

AS

Andrew Strokov in embedded.rs
ты даже if в компайл-тайме не выполнишь
источник

AS

Andrew Strokov in embedded.rs
непонятно. Напиши макрос, будет тебе if
источник

AS

Andrew Strokov in embedded.rs
например
static x: u32 = 15;
static a: [u8; sizeof(x)]; // нельзя
источник

AS

Andrew Strokov in embedded.rs
ну на макросах всё не напишешь) тем более, что в макросах ты const fn всё равно не посчитаешь
источник

AS

Andrew Strokov in embedded.rs
в процедурных посчитаешь. А насчет массива по размеру переменной надо подумать
источник

AS

Andrew Strokov in embedded.rs
и ещё болело от того, что нет typeof
источник

AS

Andrew Strokov in embedded.rs
зачем тебе typeof в статически типизированном языке?
источник

AS

Andrew Strokov in embedded.rs
потому что некоторые типы просто невозможно записать
источник

AS

Andrew Strokov in embedded.rs
из-за всяких лайфтаймов и лямбд
источник

AS

Andrew Strokov in embedded.rs
а как трейтом обойти?
источник

AS

Andrew Strokov in embedded.rs
Сайзоф можно обойти трестом
источник

AS

Andrew Strokov in embedded.rs
И мне казалось что он есть
источник

AS

Alexey Shmalko in embedded.rs
ещё в дженериках не хватает чисел. поэтому во всяких своих буферах вместо параметризирования размеров приходится передавать в конструктор массивы. например, https://github.com/rasendubi/bkernel/blob/master/dev/circular_buffer.rs#L19-L35
источник

MC

Mikhail Cheshkov in embedded.rs
Ну как, завести трейт SizeOf, в нем константа, реализовать его для того что нужно
источник

MC

Mikhail Cheshkov in embedded.rs
Не универсально, именно что обойти
источник

MC

Mikhail Cheshkov in embedded.rs
Alexey Shmalko
ещё в дженериках не хватает чисел. поэтому во всяких своих буферах вместо параметризирования размеров приходится передавать в конструктор массивы. например, https://github.com/rasendubi/bkernel/blob/master/dev/circular_buffer.rs#L19-L35
Это оченьбольшая проблема, сейчас есть рфц сбольшими шансами быть влитым
источник

AS

Andrew Strokov in embedded.rs
Mikhail Cheshkov
Ну как, завести трейт SizeOf, в нем константа, реализовать его для того что нужно
ну такое, придется реализовывать для всего подряд
источник