Size: a a a

2020 April 25

EG

Emmanuel Goldstein in rust_offtopic
Stanislav Sagan
Лучше расскажи задачу целиком. Ты что-то не то делаешь. И зачем тебе offset в каждой структуре
У меня есть строка и к ней прилетают байтовые оффсеты аннотаций
источник

EG

Emmanuel Goldstein in rust_offtopic
Я хочу их раскидать по lines
источник

EG

Emmanuel Goldstein in rust_offtopic
Для этого я бью строку по ньюлайнам, для каждой аннотирую её начало, и дальше бинпоиск
источник

SS

Stanislav Sagan in rust_offtopic
Emmanuel Goldstein
Для этого я бью строку по ньюлайнам, для каждой аннотирую её начало, и дальше бинпоиск
Ты не можешь разбивать строку по ньюлайнам, потому что подразумевается что строка не имеет ньюлайнов
источник

EG

Emmanuel Goldstein in rust_offtopic
У меня есть string и к ней прилетают байтовые оффсеты аннотаций
источник

EG

Emmanuel Goldstein in rust_offtopic
Я хочу их раскидать по lines
источник

EG

Emmanuel Goldstein in rust_offtopic
Для этого я бью string по ньюлайнам, для каждой line аннотирую её начало, и дальше бинпоиск
источник

SS

Stanislav Sagan in rust_offtopic
Мм.. сложновато, но ладно.. Вопрос
источник

SS

Stanislav Sagan in rust_offtopic
Функции типа split и подобные тебе не подходят? В том смысле что ты уверен что тебе нужно с офсетом морочиться
источник

EG

Emmanuel Goldstein in rust_offtopic
У меня для аннотации указан оффсет с начала string, и это я изменить не могу
источник

EG

Emmanuel Goldstein in rust_offtopic
И мне нужно найти, в какую line её поместить
источник

SS

Stanislav Sagan in rust_offtopic
Аннотация это какой-то текст который ты потом засовываешь в свой String в offset ? Но не в сам offset а в начало строки?
источник

EG

Emmanuel Goldstein in rust_offtopic
Stanislav Sagan
Аннотация это какой-то текст который ты потом засовываешь в свой String в offset ? Но не в сам offset а в начало строки?
Аннотация — это некий текст, который мне нужно хранить, привязанным к line
источник

EG

Emmanuel Goldstein in rust_offtopic
Я потом буду его выводить вместе с line
источник

EG

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

SS

Stanislav Sagan in rust_offtopic
То есть выяснить номер строки для offset
источник

EG

Emmanuel Goldstein in rust_offtopic
Я уже, в целом, нашёл решение
Итератор по 2-чанкам следующей последовательности:
— 0
далее, для каждого ньюлайна
— индекс ньюлайна
— индекс плюс один
далее
— длина строки
источник

EG

Emmanuel Goldstein in rust_offtopic
Stanislav Sagan
То есть выяснить номер строки для offset
Да, причём быстро. Моё решение справляется за логарифм от длины файла на каждую аннотацию (плюс линейное время предобработки один раз).
источник

SS

Stanislav Sagan in rust_offtopic
Emmanuel Goldstein
Да, причём быстро. Моё решение справляется за логарифм от длины файла на каждую аннотацию (плюс линейное время предобработки один раз).
Ну ты умные слова тут пишешь) Я таких не понимаю)
источник

SS

Stanislav Sagan in rust_offtopic
Если у тебя несколько аннотаций на одну страницу, собери лучше сразу все вхождения на ньюлайны а потом только ими и оперируй
источник