Куча говна / Говнокод #26492 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
impl<'a, F, S, D, W, O, L, Of, G, DB> BoxedDsl<'a, DB>
    for SelectStatement<F, SelectClause<S>, D, W, O, L, Of, G>
where
    Self: AsQuery,
    DB: Backend,
    S: QueryFragment<DB> + SelectableExpression<F> + Send + 'a,
    D: QueryFragment<DB> + Send + 'a,
    W: Into<BoxedWhereClause<'a, DB>>,
    O: Into<Option<Box<dyn QueryFragment<DB> + Send + 'a>>>,
    L: QueryFragment<DB> + Send + 'a,
    Of: QueryFragment<DB> + Send + 'a,
    G: QueryFragment<DB> + Send + 'a,
{
    type Output = BoxedSelectStatement<'a, S::SqlType, F, DB>;

    fn internal_into_boxed(self) -> Self::Output {
        BoxedSelectStatement::new(
            Box::new(self.select.0),
            self.from,
            Box::new(self.distinct),
            self.where_clause.into(),
            self.order.into(),
            Box::new(self.limit),
            Box::new(self.offset),
            Box::new(self.group_by),
        )
    }
}

https://github.com/diesel-rs/diesel/blob/master/diesel/src/query_builder/select_statement/dsl_impls.rs#L342

Запостил: gost gost, (Updated )

Комментарии (11) RSS

  • По-моему, это какая-то хуйня, которая выглядит ничуть не лучше крестовых шаблонов.
    Ответить
    • Ну авторы явно вдохновлялись наглядностью и удобством чтения крестошаблонов... А что эта хуйня делает?
      Ответить
      • А хуй его знает, какие-то кишки ORM. Судя по папке и содержимому «internal_into_boxed» — видимо, собирает какой-то вид запроса.
        Ответить
      • Этот синтаксический мусор - это генереций бойлерплейта вида:

        SELECT TOP 1 pituh
        FROM bagor
        WHERE koko
        ORDER BY asc

        Так же, этот мусор генерирует ещё множество побочного мусора вызванного нелепостью данного недоязычка для плебеев.

        Данный мусор нельзя, в отличии от нормально языка. Если бы там было что сложнее, то пришлось бы писать Box(musor::govno(bla-bla)), когда как нормальный язык всё это может сделать сам.

        >impl<'a, F, S, D, W, O, L, Of, G, DB> BoxedDsl<'a, DB>
        Так же нужно все сигнатуры засирать этим мусором.
        В сишке никаких параметров нету. А в говнорасте дристня эта разрастётся на километры.
        В нормальном же языке это всё выводится само.
        Ответить
    • Как видим проблемы очевидны. Синтаксический мусор + оверхед + проблемы с кучей разных типов.
      Ответить
  • стрелочные функции в перемешку с псевдо ооп
    Именно поэтому я за РНР
    Ответить
  • не нравится обобщенное программирование белых людей -- пиздуйте не джаву, и пишите копипаст или ансейф каст
    Ответить
    • Животное научили очередному трюку и оно везде это пихает. Опять же ситуация в том, что это не обобщённое программирование. Тип должен быть снабжен информацией об ошибке - здесь же никакой информации нет. Любая попытка её добавить ломается, т.к. это говно не может в С++ templates, а даже если бы могло - это никак не поможет.

      Если проще. Данный синтаксический мусор - это моча в рожи сектантов. Т.е. сектанты блеяли, что у них там супер-женерики. Но как всегда обделались.
      Ответить
  • Опять мы приходим к тому о чём я уже говорил

    Что же анскильная мразь в конечном итоге родила? Она родила кода больше, чем в си, при этом в си эта мразь не использует даже define нормально, а в своём говне обмазывается.
    Так же, говно на расте состоит из тонн синтаксического мусора. Любой, кто будет такой писать/читать - идиот по определению.
    Ответить

Добавить комментарий

Из-за тебя ушел bormand, guest!

    А не использовать ли нам bbcode?


    8