Size: a a a

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

2020 December 03

a

antuan in Rust — русскоговорящее сообществo
json поменяй на orjson для начала
но вообще сразу пиши на расте каэш, чего мелочиться :)
источник

в🧇

вафель 🧇 in Rust — русскоговорящее сообществo
polunin.ai
там есть as_mut_ptr, все норм
а, ну или так. он под капотом тоже самое делает X)
источник

IG

Igor Gulamov in Rust — русскоговорящее сообществo
как запустить cargo test для crate в workspace c —no-default-features?
источник

IG

Igor Gulamov in Rust — русскоговорящее сообществo
нужно в rust stable
источник

p

polunin.ai in Rust — русскоговорящее сообществo
antuan
json поменяй на orjson для начала
но вообще сразу пиши на расте каэш, чего мелочиться :)
да, если иожно писать на расте, нужно писать на расте.
источник

a

antuan in Rust — русскоговорящее сообществo
polunin.ai
да, если иожно писать на расте, нужно писать на расте.
Это не сарказм был
источник

S

ShaTie in Rust — русскоговорящее сообществo
Спасибо! Поэтому я и тут)
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Денис Котляров
по поводу данной вещи мне тоже известно:)
и это логично.

но я изворачивался/изворачиваюсь тупо через ManuallyDrop + ... страшного
(и тот вариант в книге, через ptr, не спорю лучше намного)
В ManuallyDrop нельзя запихивать невалидные значения
источник
2020 December 04

ДК

Денис Котляров... in Rust — русскоговорящее сообществo
Mikail Bagishov
В ManuallyDrop нельзя запихивать невалидные значения
MaybeUninit является union и также имеет Одно из возможных значений ManuallyDrop<T>,

так что же невалидно?
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Денис Котляров
MaybeUninit является union и также имеет Одно из возможных значений ManuallyDrop<T>,

так что же невалидно?
В MaybeUninit можно класть всякий мусор, потому что он union, и одно из полей это ().

ManuallyDrop это просто
struct ManuallyDrop<T>(T);
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
В тот момент, когда в MaybeUninit лежит мусор, ты потому и не имеешь право делать read() или assume_init(), что ManuallyDrop никак не ослабляет требования валидности типа
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Денис Котляров
MaybeUninit является union и также имеет Одно из возможных значений ManuallyDrop<T>,

так что же невалидно?
Второй абзац документации:

ManuallyDrop<T> is subject to the same layout optimizations as T. As a consequence, it has no effect on the assumptions that the compiler makes about its contents. For example, initializing a ManuallyDrop<&mut T> with mem::zeroed is undefined behavior. If you need to handle uninitialized data, use MaybeUninit<T> instead.
источник

ДК

Денис Котляров... in Rust — русскоговорящее сообществo
Mikail Bagishov
В тот момент, когда в MaybeUninit лежит мусор, ты потому и не имеешь право делать read() или assume_init(), что ManuallyDrop никак не ослабляет требования валидности типа
я это прекрасно понимаю,

и ManuallyDrop используется с целью контроля высвобождения uniti, 1. сам ManuallyDrop заново создается и сетится с готовым значением, 2. чтение из ManuallyDrop происходит после сетинга ManuallyDrop + валидного значения.
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Неважно, в какой момент ты читаешь и читаешь ли вообще.
В тот момент, когда создан ManuallyDrop с невалидным значением внутри, поведение программы не определено(по документации. Что там на практике - отдельный разговор). И уже не важно, что там будет с вызовом деструктором - дело до него тупо не дойдет.
источник

A

Apachee in Rust — русскоговорящее сообществo
В Rust нету комплексных чисел в std?
источник

A

Adv0cat in Rust — русскоговорящее сообществo
Их вроде и в стандартной алгебре нет особо))
источник

A

Adv0cat in Rust — русскоговорящее сообществo
Хотя я конечно мимокрокодил))
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Adv0cat
Их вроде и в стандартной алгебре нет особо))
Что это за стандартная алгебра, в которой нет комплексных чисел?
источник

D

Denis in Rust — русскоговорящее сообществo
та, которая используется в 99.999% проектов? )
источник

p

polunin.ai in Rust — русскоговорящее сообществo
Apachee
В Rust нету комплексных чисел в std?
Нет. Используй пакет.
источник