Size: a a a

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

2020 August 23

В

Вафель in Rust — русскоговорящее сообществo
Vladimir
покажи
pub struct Coerce<T: ?Sized> {
   pub buf: T,
}

let _: &Coerce<[u8]> = &Coerce { buf: [0] };
источник

IB

Ivan Boldyrev in Rust — русскоговорящее сообществo
Вафель
pub struct Coerce<T: ?Sized> {
   pub buf: T,
}

let _: &Coerce<[u8]> = &Coerce { buf: [0] };
Я вижу здесь фиксированный размер. Это не то, что в C. "Формально верно, а по существу - издевательство" (с)
источник

A

Adv0cat in Rust — русскоговорящее сообществo
Ребят, а https://doc.rust-lang.org/std/collections/struct.BTreeMap.html это просто б дерево или таки б + дерево?)😃
источник

L

Lev in Rust — русскоговорящее сообществo
У меня есть свой тип ошибки для actix-web (enum), и actix его автоматически всегда конвертирует в ошибку 500. Как научить его выдавать что-то другое?
источник

A

Adv0cat in Rust — русскоговорящее сообществo
Я просто на расте чот не нашел реализации B+Tree дерева, кроме https://github.com/wspeirs/btree но этот крейт во-первых заброшен, а во вторых чот какая-то мутная штука с записью на диск
источник

ИЛ

Иван Лещенко... in Rust — русскоговорящее сообществo
Lev
У меня есть свой тип ошибки для actix-web (enum), и actix его автоматически всегда конвертирует в ошибку 500. Как научить его выдавать что-то другое?
источник

e🦀

eupn 🦀 in Rust — русскоговорящее сообществo
Adv0cat
Ребят, а https://doc.rust-lang.org/std/collections/struct.BTreeMap.html это просто б дерево или таки б + дерево?)😃
Все ключи в листовых узлах, а сами ключи организованы в список (массив), больше похоже B+
источник

L

Lev in Rust — русскоговорящее сообществo
Спасибо!
источник

A

Adv0cat in Rust — русскоговорящее сообществo
eupn 🦀
Все ключи в листовых узлах, а сами ключи организованы в список (массив), больше похоже B+
Ну ток я не понял, чтобы несколько уровней сделать, то нужно в листок еще одно btree ложить? Ну т.е. мутная какая-то реализация))
источник

e🦀

eupn 🦀 in Rust — русскоговорящее сообществo
Adv0cat тут отдельно обсуждали B+ дерево: https://github.com/rust-lang/rust/issues/27090, так что в стд может быть и В-обычное
источник

A

Adv0cat in Rust — русскоговорящее сообществo
ну там я так и не понял чем закончилось)) ну и плюс опять же, как ветвистость сделать?
источник

e🦀

eupn 🦀 in Rust — русскоговорящее сообществo
Adv0cat
ну там я так и не понял чем закончилось)) ну и плюс опять же, как ветвистость сделать?
Для чего самому делать ветвистость? У B-деревьев как правило высота слабо растет с чисом элементов
источник

A

Adv0cat in Rust — русскоговорящее сообществo
eupn 🦀
Для чего самому делать ветвистость? У B-деревьев как правило высота слабо растет с чисом элементов
Не совсем понял вопроса) Я просто тут думаю базу данных на раст написать, а b+tree не нашел нормального, вот и вопрос, писать самому, или хватит из std взять 😉
источник

e🦀

eupn 🦀 in Rust — русскоговорящее сообществo
Имхо B-tree для хранения на диске для БД должен иметь другие трейд-оффы нежели B-дерево для in-memory мапы
источник

A

Adv0cat in Rust — русскоговорящее сообществo
eupn 🦀
Имхо B-tree для хранения на диске для БД должен иметь другие трейд-оффы нежели B-дерево для in-memory мапы
а теперь попроще, можете объяснить 😄
источник

A

Adv0cat in Rust — русскоговорящее сообществo
Типа написать с нуля свою реализацию?))
источник

e🦀

eupn 🦀 in Rust — русскоговорящее сообществo
Проще: пиши свое, заточенное под дисковое хранение (компактная сериализация, последовательный доступ, требования к RAM и буферизация)
источник

A

Adv0cat in Rust — русскоговорящее сообществo
eupn 🦀
Проще: пиши свое, заточенное под дисковое хранение (компактная сериализация, последовательный доступ, требования к RAM и буферизация)
👍 Понял, так и подумал с самого начала 😄
источник

e🦀

eupn 🦀 in Rust — русскоговорящее сообществo
Ну или возьми готовое и посвежее, если найдешь
источник

A

Adv0cat in Rust — русскоговорящее сообществo
та от не нашел) Ну значит напишем, делов то))
источник