На будущие
В очередной раз удивляюсь тому, что начинаю тратить время и отвечать идиотам(которые мои ответы трут, тему локают, либо спамят херню до посинения). Буду учится отвечать тут. Тем самым я не буду тратить столько времени на идиотов. Читать мои ответы будет больше человек.
потуга первая
Первая потуга от клоуна с лора:
Чем это лучше:
Тем, что ты украл этот код, отребье. Если бы не мой код - ты бы ничего не родил, т.к. воровать было бы не с кого. Именно поэтому прибежал уже после.
Твоё говно сливает в хлам.
Твоё говно выглядит как говно, да и работает как говно. Да оно и есть говно.
if b.is_ascii_whitespace() && !buf.get(i+1).map(|c| c.is_ascii_whitespace()).unwrap_or(false)
И прочие киллометры мусора, скобочек и ифов.
К тому же нужно понимать, что:
let buf = unsafe { memmap::Mmap::map(&file)? };
Это не говнораст. Есть unsafe - говнораста нет. Это, что нужно сходу декларировать любому раст-сектанту и он тут же побежит рыдать к мамке. Потому как при использовании unsafe теряется всё то, что сектанты приписывают к этому говну.
.expect("no input file")
Это не говнораст. Здесь сектант обделался и начинает врать. Сектант понимает, что он бездарность и ничего не может, как и его недоязычок. Именно поэтому он пытается эмулировать семантику исключений и рассчитано это на то, что сторонний наблюдатель подумает “да это же исключения”, но нет. Это не исключения - это паника.
Т.е. если я могу спокойно игнорировать и использовать исключения в С++-коде, то сектант не может сделать тоже самое. Я могу обработать исключения, если меня не устраивает “паника”. Сектанты же не может. Есть какие-то нелепые попытки ловить паники, но они не юзабельны.
Так же )?
- обезьяну научили очередному трюку и она везде это пихает. Опять же ситуация в том, что это не обработка ошибок. Ошибка должна быть снабжена информацией об ошибке - здесь же никакой информации нет. Любая попытка её добавить ломается, т.к. это говно не может в вывод типов, а даже если бы могло - это никак не поможет.
Если проще. Данный синтаксический мусор - это моча в рожи сектантов. Т.е. сектанты блеяли, что у них там супер-обработка ошибок и никаких проблем нет. Но как всегда обделались и никто с них за это не спросил.
Этот синтаксический мусор - это генераций бойлерплейта вида:
if(res.err) return res.err;
Как видим проблемы очевидны. Синтаксический мусор + оверхед + проблемы при возврате разных типов. Если исключения можно кидать произвольного типа и строить какие угодно иерархии, то здесь нужно всё сводить к одному типу. Иначе сломается.
Так же, этот мусор генерирует ещё множество побочного мусора вызванного нелепостью данного недоязычка для плебеев.
Ok(())
Данный мусор не можно, в отличии от нормально языка, в {} как дефолт. Если бы там было что сложнее, то пришлось бы писать Ok(musor::govno(bla-bla)), когда как нормальный язык всё это может сделать сам.
-> std::io::Result<()>
Так же нужно все сигнатуры засирать этим мусором. Здесь же никаких параметров нету, а если они будут(а они будут), то дристня эта разрастётся на километры. В нормальном же языке это всё выводится само.
> обезьяну научили очередному трюку и она везде это пихает
ОтветитьУдалитьЭто ты про себя со своим mmap? Самокритично. Но зато правдиво. Хоть в чём-то порадовал. Посмотрим как залихватски будет посасывать твой недобложик-полухеловорд лет через сто.
> Синтаксический мусор + оверхед + проблемы при возврате разных типов.
Не, нет никаких проблем с разными типами. Да и оверхеда нету -- там всё статически. И синтаксического мусора нету.
Пруфцей каждую потугу, отребье. Живо.
Удалить>>Не, нет никаких проблем с разными типами.
Бегом вернул два типа ошибки из функции через ?
>>Да и оверхеда нету -- там всё статически
Бездарнсть, диспатч по enum динамический.
Ответа за потуги нет, мразь продолжает блеять херню вместо ответа.
УдалитьЦарь как обычно, пришел, увидел, умножил лалок на ноль. Смеёмся всем двором с потуг обиженных.
ОтветитьУдалить