Size: a a a

2021 March 20

c

codingteam@cjr in codingteam
Minoru
в принципе, можно было бы написать вложенные match, но это был бы ад. Уж лучше с реаллокациями
источник

c

codingteam@cjr in codingteam
Minoru
хм, вообще-то ты хороший вопрос задал. Если перейти к str, то там попроще будет, т.к. не придётся так много возиться с ownership
источник

А⚙

Антон ⚙️ in codingteam
codingteam@cjr
Minoru
хм, вообще-то ты хороший вопрос задал. Если перейти к str, то там попроще будет, т.к. не придётся так много возиться с ownership
Лол, вот не факт совершенно
источник

c

codingteam@cjr in codingteam
Minoru
факт-факт. Можно будет работать с &str и Option<&str>, уже без String. Чуть проще :)
источник

c

codingteam@cjr in codingteam
Minoru
ну, я про свой конкретный случай говорю, конечно. В общем случае фиг знает
источник

А⚙

Антон ⚙️ in codingteam
codingteam@cjr
Minoru
@insert_reference_here: String. Хотел избавиться от префикса и суффикса, если они есть, и получить в итоге опять String. Пришлось переписать на несколько if let с хранением промежуточных результатов в String — без этого borrow checker ругается на то, что Option.and_then(|x| x.strip_suffix(…)) возвращает ссылку на локальную переменную x
s.truncate(s.strip_suffix(suffix).map_or(s.len(), str::len))
источник

c

codingteam@cjr in codingteam
Minoru
а, да, действительно, можно с длинами играть
источник

А⚙

Антон ⚙️ in codingteam
codingteam@cjr
Minoru
@insert_reference_here: String. Хотел избавиться от префикса и суффикса, если они есть, и получить в итоге опять String. Пришлось переписать на несколько if let с хранением промежуточных результатов в String — без этого borrow checker ругается на то, что Option.and_then(|x| x.strip_suffix(…)) возвращает ссылку на локальную переменную x
if s.starts_with(prefix) {
   unsafe { s.as_vec_mut().splice(..prefix.len(), std::iter::empty()) }
}
источник

t

ttldtor in codingteam
Alex Ф-ф-фэils!🌠︙
А я жру говно
откуда у тебя там gcc ?)
источник

c

codingteam@cjr in codingteam
Minoru
@insert_reference_here: ой, всё :) Мне не надо прям очень быстро, две лишних реаллокации ок
источник

c

codingteam@cjr in codingteam
Minoru
первый твой вариант весьма ок
источник

c

codingteam@cjr in codingteam
Minoru
как закончу писать то, что пишу — вернусь и переделаю свои if let-ы
источник

c

codingteam@cjr in codingteam
Minoru
спасибо за идею :)
источник

А⚙

Антон ⚙️ in codingteam
codingteam@cjr
Minoru
спасибо за идею :)
s = {
   let s = s.strip_suffix(suffix).unwrap_or(&s);
   let s = s.strip_prefix(prefix).unwrap_or(s);
   s.to_owned()
};
источник

t

ttldtor in codingteam
Антон ⚙️
s = {
   let s = s.strip_suffix(suffix).unwrap_or(&s);
   let s = s.strip_prefix(prefix).unwrap_or(s);
   s.to_owned()
};
надо же, что-то неэкспериментальное)
источник

А⚙

Антон ⚙️ in codingteam
ttldtor
надо же, что-то неэкспериментальное)
Тут есть аллокация без которой можно обойтись
источник

t

ttldtor in codingteam
ну, если у минорыча цель — отобразить часть строки, то можно было бы обойтись и без обрезания)
источник

t

ttldtor in codingteam
главное, чтобы вьюха умела такое отображать)
источник

А⚙

Антон ⚙️ in codingteam
ttldtor
ну, если у минорыча цель — отобразить часть строки, то можно было бы обойтись и без обрезания)
Хм
источник

LH

LACAL HOST in codingteam
ttldtor
откуда у тебя там gcc ?)
termux; я так gfortran притащил на андроид
источник