Size: a a a

2021 January 25

CD

Constantine Drozdov in rust_offtopic
Αλεχ Zhukovsky
тебе все равно на него чекать надо
в итераторах - да, во вставке не будет ни одного ифа
источник

CD

Constantine Drozdov in rust_offtopic
next.prev всегда корректная конструкция
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
Constantine Drozdov
в итераторах - да, во вставке не будет ни одного ифа
будет, если ты вставляешь первый элемент то он должен заменить заглушку
источник

CD

Constantine Drozdov in rust_offtopic
Αλεχ Zhukovsky
будет, если ты вставляешь первый элемент то он должен заменить заглушку
он будет head.next
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
Constantine Drozdov
next.prev всегда корректная конструкция
конечно нет, разыменование заглушки это сегфолт
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
да, у тебя голова списка тогда это всегда заглушка
источник

CD

Constantine Drozdov in rust_offtopic
Αλεχ Zhukovsky
да, у тебя голова списка тогда это всегда заглушка
да, именно так
источник

CD

Constantine Drozdov in rust_offtopic
по-моему это так и называется "реализация с пустой головой", но слишком смешно звучит
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
ну в расте это не может работать потому что "заглушка" типа Т нарушает праавила раста, а делать под капотом MaybeUninit когда мы знаем что все элементы кроме первого проинитены - того не стоит вероятно
источник

CD

Constantine Drozdov in rust_offtopic
Αλεχ Zhukovsky
ну в расте это не может работать потому что "заглушка" типа Т нарушает праавила раста, а делать под капотом MaybeUninit когда мы знаем что все элементы кроме первого проинитены - того не стоит вероятно
так это не типа T, это типа basic_node

struct basic_node {
   basic_node * head;
   basic_node * prev;
};

struct payload_node : basic_node {
    T payload;
};
источник

CD

Constantine Drozdov in rust_offtopic
и теперь тайпкаст basic_node* -> payload_node* требует проверки на head, что логично
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
Constantine Drozdov
и теперь тайпкаст basic_node* -> payload_node* требует проверки на head, что логично
в общем, думаю всем похуй на оптимизации типа данных с таким паттерном памяти
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
поэтому сделано максимально в лоб и очевидно, без подводных
источник

D

Dima in rust_offtopic
я все еще не понимаю в чем проблема сделать двухсвязный список с 2 - мя заглушками, для head и tail?
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
Dima
я все еще не понимаю в чем проблема сделать двухсвязный список с 2 - мя заглушками, для head и tail?
тебе нужен даункаст из basic_node в payload_node
источник

D

Dima in rust_offtopic
не нужен, мне нужен offset_of
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
где? Ты ради этого трейты потащишь?
источник

D

Dima in rust_offtopic
ладно видимо я че-то не догоняю, ну вот тут же классическая реализация с 2 мя заглушками https://docs.rs/intrusive-collections/0.9.0/intrusive_collections/linked_list/struct.LinkedList.html и offset_of https://github.com/Amanieu/intrusive-rs/blob/2fb04e7edfec0b250b2c9a8bf7f8f91027137e8b/src/adapter.rs#L212
источник

C

Crush_my_love in rust_offtopic
Agrailag
а какие там у гугла проблемы, кроме неспособности обходиться без сжв повестки?
Не знаю. Проблема в том, что этот профсоюз будет только больше повестки пихать.
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
источник