Oleg
akka-http
Oleg
пять параметров
Loyd
конкретнее
Filipp
Loyd
Loyd
я нагуглил доку и хз что там
Loyd
И о каком объекте ты
Oleg
И о каком объекте ты
http://doc.akka.io/api/akka-http/10.0.9/akka/http/scaladsl/model/HttpRequest$.html#apply(method:akka.http.scaladsl.model.HttpMethod,uri:akka.http.scaladsl.model.Uri,headers:scala.collection.immutable.Seq[akka.http.scaladsl.model.HttpHeader],entity:akka.http.scaladsl.model.RequestEntity,protocol:akka.http.scaladsl.model.HttpProtocol):akka.http.scaladsl.model.HttpRequest
Sherzod
Вот это урл!
Loyd
Охренеть, функция на пять параметров
Oleg
Loyd
заголовки по частям выставлять нельзя, сразу всё нужно
Loyd
Тело где выставлять?^W^W^W entity
Oleg
http://doc.akka.io/api/akka-http/10.0.9/akka/http/scaladsl/model/RequestEntity.html
Loyd
В скале можно пропускать необязательные параметры?
Oleg
да
Oleg
Loyd
Там Seq принимается
Loyd
То есть нельзя свой объект попропускать по функциям мидлварам и потом отправить
Oleg
Там Seq принимается
http://doc.akka.io/api/akka-http/10.0.9/akka/http/scaladsl/model/HttpRequest.html#addHeader(header:akka.http.javadsl.model.HttpHeader):HttpMessage.this.Self
Loo
дефолтная инициализация структур + апдейт синтаксис решают
Loyd
О, ну вот. Та же самая свалка из 100500 конструкторов
Oleg
Loo
гарантируют валидность всего этого говна
Loo
на этапе компиляции
Loyd
Только вот 100500 конструкторов вместо одного билдера
Loo
без написания кучи доп кода
Loyd
10/10
Oleg
Oleg
просто иммьютебл объект с апдейтами
Loyd
На этапе компиляции если хочешь, что билдер параметризуется
Loo
тут наверное от задачи надо прыгать и ситуации
Loyd
Каким-то сессионным типом, например
Loyd
А сам он иммутабельный
Oleg
Loyd
Oleg
конструктор один
Loyd
Ладно, это явно вброс
Loo
Loyd
Loo
мне кажется я не понимаю
Oleg
это не конструкторы
Oleg
слив защитан, я поехал
Loyd
Кто гарантирует, что они не будут вызваны после того, как будут отправлены заголовки?
Loyd
Причём в который раз и не только я, лол
Loyd
мне кажется я не понимаю
Что именно? Почему default тебе ничего не гарантирует и проверять так ничего нельзя или что?
Loo
про 100500 конструкторов
VCL
Почему не i8?
let mut x = (1, 2); // x: (i32, i32)
let y = (2, 3); // y: (i32, i32)
Loyd
про 100500 конструкторов
Ну не конструкторы там, а методы, окей. Тут ещё больше вопросов: мы обсуждаем как сконструировать объект, приходит петух и начинает про то, как конфигруировать
Loyd
У такой конфигурации куча вопросов
Loyd
Loyd
Дальше, про эти with*. Часть возвращает HttpRequest, новый, часть Self
Loyd
Ах да, ты же петух, совсем забыл
Nikita
Культура!
Filipp
Loyd
Loyd
Но если компилятор увидит, что на самом деле нужен другой i*, то будет трактовать как нужный
VCL
А вот это слегка разочаровало
VCL
fn main() {
let a = [0, 1, 2, 3, 4, 5, 6, 7];
let middle = &a[3..4];
let (c, b) = (middle[0], middle[1]);
println!("Hello, world! {} {}", c, b);
}
VCL
runtime error
VCL
а не compile time
Loyd
compile time проверки тут даже делать довольно глупо: слишком редкий кейс
Loyd
Почти всегда у тебя слайс от чего-то, размер чего определяетя в рантайме
VCL
Хотя, тут явный error гораздо лучше, чем неопределённое поведение из C/C++
Filipp
но странно, слайс имеет один элемент, я где-то видел ворнинг что типа это упадет в рантайме
Loyd
Может уже есть (или будет) такая проверка в clippy
Filipp
может линтер подсказывал какой-то
Filipp
клиппи молчит
Filipp
rustc только в простом случае подсказывает:
Filipp
Alex
почему?
Alex
забавно, я вроде как даже знаю этот комикс
LexsZero
херня, не избавит. а вот при насморке помогает.
Мерль
Извините, не туда