Anonymous
а это костыль из-за их отсутствия
доня.
для формата макро лучше
Anonymous
о чем весь разговор и шел
доня.
разговор шёл о том что формат макро — костыль
Anonymous
блять
доня.
я тебе говорю шо макрос тут лучше функции
Anonymous
доня.
доня.
ты написал шо format — костыль
но ведь нет
Anonymous
分解物質
то есть все аргументы могут быть разного типа но реализующие конкретный трейт?
分解物質
это вызовет сложность в реализации
分解物質
ну по крайней мере уже не zero-cost
доня.
хз, вот сахарок для опциональных аргументов использующий Option наверное неплохо было бы
分解物質
runtime type information теперь и в rust
分解物質
нужно больше абстракций
分解物質
а то программировать слишком сложно
Vladimir
та да, я говорил про вариадики, что они с такой же вероятностью должны появится как и перегрузка (так как частный случай онной)
Vladimir
и имхо этого не будет
Vladimir
но эт не точно
Anonymous
Маjко
У меня тут с новым гипером непонятки.
Он не дает засунуть в обработчик никакой контекст, даже если контекст обернут в Arc/Rc.
Маjко
lazy_static, конечно, спасет ситуацию
Маjко
Но это как-то оч странно и я надеюсь, что есть другое решение
Маjко
Может кто подсказать чего от меня хочет гипер?
Loo
Loo
Я прост не понял что он не даёт)
Маjко
Лол, а так сработало.
let auth = Authenticator::new();
let server = Http::new().bind(&addr, move || Ok(AuthMiddleware::new(&auth))).unwrap();
server.run().unwrap();
Маjко
Хотя по факту он всё так же мувает
Маjко
Вот так ругался, что параметр bind не реализует Fn
let auth = Rc::new(Authenticator::new());
let server = Http::new().bind(&addr, || Ok(AuthMiddleware::new(auth))).unwrap();
server.run().unwrap();
Loo
Возьми Arc и перед let server попробуй let auth = auth.clone();
Маjко
Окей, ща попробуем
Маjко
Но всё же, почему с ссылкой сработало то?
Маjко
Либо это баг, либо там не нужны гарантии Arc
Маjко
@LooMaclin всё, я понял зачем ему Fn и почему с ссылкой работает)
Anonymous
почему?
Маjко
Он хочет эту кложу повторять для каждого запроса
Маjко
Соответственно кложа, мувающая данные не подойдет
Маjко
Так как после первого раза данных уже нет
Маjко
А ссылка "реализует" Copy
Маjко
И ее можно много раз мувнуть)
Маjко
Но почему компилер требует мувнуть auth в кложу и это устраивает hyper я все равно не понял
Маjко
Это какая-то borrowck-магия
Маjко
Сейчас на гитхаб залью
分解物質
а разве это runtype type information?
да информация о типе в рантайме где-то хранится чтобы можно было распознать на что указывает Box и решить какую функцию для преобразования в строку использовать
Anonymous
это разве не в компайл тайме?
Маjко
Трейт-объект не дает сведений в рантайме о реальном типе
Anonymous
даже typeid не в рантайме работает
Маjко
Это просто таблица с указателем на данные и указателями на реализации методов трейта
Anonymous
он и не должен это знать ведь
分解物質
как он тогда решает на какой элемент какую функцию вызывать?
分解物質
Debug же отдельно для каждого типа реализован
Anonymous
при кастинге в трейт компилятор будет знать какую имплементацию использовать
Маjко
@LooMaclin https://github.com/DevHeap/circles-server/blob/firebase-auth/services/dispatcher/src/main.rs
Anonymous
Anonymous
вот есть полный список ошибок компиляции, а есть такой же для warnings?
Anonymous
Anonymous
в релиз режиме?
分解物質
opt-level=3
Маjко
Там же формат. это норма
Anonymous
надо без него попробовать
Vladimir
покажи код
分解物質
պլհկ
Напоминаю: http://meetu.ps/e/D6FjB/n6fTM/a
Loo
impl Map<String, Value> {
/// Makes a new empty Map.
#[inline]
pub fn new() -> Self {
Map { map: MapImpl::new() }
}
#[cfg(not(feature = "preserve_order"))]
/// Makes a new empty Map with the given initial capacity.
#[inline]
pub fn with_capacity(capacity: usize) -> Self {
// does not support with_capacity
let _ = capacity;
Map { map: BTreeMap::new() }
}
Loo
ахах. это божественно
Loo
serde_json это
Alex
պլհկ
https://www.reddit.com/r/rust/comments/6zdvza/my_experience_participating_in_highload_cup_re/?st=J7G2U5AW&sh=eb3042eb
Маjко
Ору
Маjко
Пойду на говнокод закину
Alex
> I’m not a backend developer. I have some understanding of servers, but no working experience in the area.
Финита
Alex
> I picked Rocket as framework because it allows to skip the boilerplate
К черту асинхронщину