Size: a a a

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

2020 October 27

k

kitlhut0r in Rust — русскоговорящее сообществo
Эрик
Это делается иначе:
sofs_w = sofs_w.saturating_sub(1);
saturating_sub до нуля или как?
источник

Э

Эрик in Rust — русскоговорящее сообществo
kitlhut0r
saturating_sub до нуля или как?
До min_value(). У беззнаковых интов это ноль.
источник

k

kitlhut0r in Rust — русскоговорящее сообществo
Эрик
До min_value(). У беззнаковых интов это ноль.
А когда будет 0 что произойдет?
источник

Э

Эрик in Rust — русскоговорящее сообществo
kitlhut0r
А когда будет 0 что произойдет?
В доках прочитай, там с примерами понятнее будет.
источник

k

kitlhut0r in Rust — русскоговорящее сообществo
Эрик
В доках прочитай, там с примерами понятнее будет.
Окей
источник

Э

Эрик in Rust — русскоговорящее сообществo
Тут screen вообще не нужен, можно просто сразу из lvl брать нужную часть и отрисовывать.
источник

АГ

Алексей Герасимов... in Rust — русскоговорящее сообществo
а кто-нибудь знает как можно получить публичное апи крейта (пибличные типы, трейты и функции) в виде json какого-нибудь? или может есть крейт для этого?
источник

ИЛ

Иван Лещенко... in Rust — русскоговорящее сообществo
Алексей Герасимов
а кто-нибудь знает как можно получить публичное апи крейта (пибличные типы, трейты и функции) в виде json какого-нибудь? или может есть крейт для этого?
Пока нашёл только RFC https://github.com/rust-lang/rfcs/pull/2963
источник

ИЛ

Иван Лещенко... in Rust — русскоговорящее сообществo
источник

k

kitlhut0r in Rust — русскоговорящее сообществo
Эрик
Тут screen вообще не нужен, можно просто сразу из lvl брать нужную часть и отрисовывать.
Нууу, жертвуя читабельностью, но на производительности наверняка сказывается...
источник

АГ

Алексей Герасимов... in Rust — русскоговорящее сообществo
спс, точно, про rustdoc я и забыл
источник

Э

Эрик in Rust — русскоговорящее сообществo
kitlhut0r
Нууу, жертвуя читабельностью, но на производительности наверняка сказывается...
let s = lvl[sofs_h..sofs_h + height as usize].iter().fold(
   String::with_capacity((height + 10) * (width + 10)),
   |ss, row| {
       row[sofs_w..sofs_w + width as usize]
           .iter()
           .fold(ss, |sss, &block_idx| sss + blocks[block_idx])
           + "\n"
   },
);
print!("{}", s);
источник

k

kitlhut0r in Rust — русскоговорящее сообществo
Эрик
let s = lvl[sofs_h..sofs_h + height as usize].iter().fold(
   String::with_capacity((height + 10) * (width + 10)),
   |ss, row| {
       row[sofs_w..sofs_w + width as usize]
           .iter()
           .fold(ss, |sss, &block_idx| sss + blocks[block_idx])
           + "\n"
   },
);
print!("{}", s);
Это три цикла заменяет?
источник

k

kitlhut0r in Rust — русскоговорящее сообществo
Обалдеть
источник

Э

Эрик in Rust — русскоговорящее сообществo
Два.
источник

Э

Эрик in Rust — русскоговорящее сообществo
источник

Э

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

k

kitlhut0r in Rust — русскоговорящее сообществo
Эрик
let s = lvl[sofs_h..sofs_h + height as usize].iter().fold(
   String::with_capacity((height + 10) * (width + 10)),
   |ss, row| {
       row[sofs_w..sofs_w + width as usize]
           .iter()
           .fold(ss, |sss, &block_idx| sss + blocks[block_idx])
           + "\n"
   },
);
print!("{}", s);
А я могу это писать без синтаксического сахара?
источник

Э

Эрик in Rust — русскоговорящее сообществo
for _ in x — это сахар для
{ let mut iter = x.into_iter(); while let Some(_) = iter.next() {} }
источник

k

kitlhut0r in Rust — русскоговорящее сообществo
Эрик
for _ in x — это сахар для
{ let mut iter = x.into_iter(); while let Some(_) = iter.next() {} }
Ну значит наоборот🤣🤣🤣
источник