Size: a a a

2020 April 24

B

Bogdan in rust_offtopic
Emmanuel Goldstein
Хочу RUST_BACKTRACE=short, чтобы выводило только релевантную часть
Снаружи обрезай
источник

SS

Stanislav Sagan in rust_offtopic
Emmanuel Goldstein
90% бектрейса где-то в кишках
Обычно это в других ЯП но не в расте
источник

B

Bogdan in rust_offtopic
Тулинг сделать
источник

B

Bogdan in rust_offtopic
источник

VS

Victor Sapiens in rust_offtopic
Кто классный? Ты классный! Добрый вечер, народ 😁
источник

EG

Emmanuel Goldstein in rust_offtopic
&string[if bounds[0] == 0 { bounds[0] } else { bounds[0] + 1 }..bounds[1]]

Иногда мне кажется, что Rust позволяет слишком много
источник

EG

Emmanuel Goldstein in rust_offtopic
Вообще я как-то долго туплю над простой, казалось бы, задачей.
У меня есть строка, мне нужно из неё получить набор структур
struct Line<'a> {
   offset: usize,
   content: &'a str
}

разбитый по ньюлайнам (сами ньюлайны не включаем)
источник

p

polunin.ai in rust_offtopic
ну и что
источник

EG

Emmanuel Goldstein in rust_offtopic
Ну и фигня выходит
источник

EG

Emmanuel Goldstein in rust_offtopic
Всё время где-то off by one
источник

EG

Emmanuel Goldstein in rust_offtopic
Я взял итератор из 0 : индексы всех ньюлайнов : string.len(), взял .windows(2) и сказал, что каждая строчка идёт от первого элемента тупла до последнего
источник

EG

Emmanuel Goldstein in rust_offtopic
Но это неправда, ньюлайны не выбрасываются
источник

EG

Emmanuel Goldstein in rust_offtopic
Emmanuel Goldstein
Но это неправда, ньюлайны не выбрасываются
Это чинится, если к индексам ньюлайнов прибавить один, но тогда ломается кейс с двумя ньюлайнами подряд
источник

G

Gymmasssorla in rust_offtopic
Emmanuel Goldstein
90% бектрейса где-то в кишках
Ну в других ЯП аналогичная ситуация
источник

EG

Emmanuel Goldstein in rust_offtopic
Gymmasssorla
Ну в других ЯП аналогичная ситуация
В интерпретируемых нет, лол
источник

G

Gymmasssorla in rust_offtopic
Emmanuel Goldstein
В интерпретируемых нет, лол
У меня в питоне также было
источник

EG

Emmanuel Goldstein in rust_offtopic
>>> def f(): g()
...
>>> def g(): h()
...
>>> def h(): e()
...
>>> f()
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
 File "<stdin>", line 1, in f
 File "<stdin>", line 1, in g
 File "<stdin>", line 1, in h
NameError: name 'e' is not defined
>>>

Вот я искуственно посоздавал стек побольше: нет, трейс только в моём коде.
источник

p

polunin.ai in rust_offtopic
Emmanuel Goldstein
Ну и фигня выходит
ну смотри тебе нужно разбить строку по графемам и искать \n. Как нашел то считай что это новая строка. проблемс?
источник

EG

Emmanuel Goldstein in rust_offtopic
А вот тупо panic!() прямо в мейне:
thread 'main' panicked at 'panik', test.rs:2:5
stack backtrace:
  0: backtrace::backtrace::libunwind::trace
            at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.40/src/backtrace/libunwind.rs:88
  1: backtrace::backtrace::trace_unsynchronized
            at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.40/src/backtrace/mod.rs:66
  2: std::sys_common::backtrace::_print_fmt
            at src/libstd/sys_common/backtrace.rs:84
  3: <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt
            at src/libstd/sys_common/backtrace.rs:61
  4: core::fmt::write
            at src/libcore/fmt/mod.rs:1025
  5: std::io::Write::write_fmt
            at src/libstd/io/mod.rs:1426
  6: std::sys_common::backtrace::_print
            at src/libstd/sys_common/backtrace.rs:65
  7: std::sys_common::backtrace::print
            at src/libstd/sys_common/backtrace.rs:50
  8: std::panicking::default_hook::{{closure}}
            at src/libstd/panicking.rs:193
  9: std::panicking::default_hook
            at src/libstd/panicking.rs:210
 10: std::panicking::rust_panic_with_hook
            at src/libstd/panicking.rs:471
 11: std::panicking::begin_panic
 12: test::main
 13: std::rt::lang_start::{{closure}}
источник

G

Gymmasssorla in rust_offtopic
Emmanuel Goldstein
>>> def f(): g()
...
>>> def g(): h()
...
>>> def h(): e()
...
>>> f()
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
 File "<stdin>", line 1, in f
 File "<stdin>", line 1, in g
 File "<stdin>", line 1, in h
NameError: name 'e' is not defined
>>>

Вот я искуственно посоздавал стек побольше: нет, трейс только в моём коде.
Ну ты здесь только свой код стектрейсишь
источник