Size: a a a

2021 April 28

CD

Constantine Drozdov in rust_offtopic
Если ты хочешь ебаться с отображениями между Result<i32, NotAFunction> - пожалуйста
источник

TK

Traveller Kolsky in rust_offtopic
Надуманная проблема
источник

CD

Constantine Drozdov in rust_offtopic
Связывание двух объектов компонентов системы?
источник

TK

Traveller Kolsky in rust_offtopic
Не понимаю, чего ты хочешь
источник

CD

Constantine Drozdov in rust_offtopic
Связать два компонента системы путём обмена обработчиками
источник

[

[BRM]White Rabbit in rust_offtopic
Звучит как делегаты
источник

Т8

Т-34 85 in rust_offtopic
std::function?
источник

[

[BRM]White Rabbit in rust_offtopic
+
источник

Т8

Т-34 85 in rust_offtopic
Кстати, а в крестах можно вывод типа для ламбды юзать. А в расте?
источник

Т8

Т-34 85 in rust_offtopic
А ещё ты можешь выцепить тип из любого выражения
источник

[

[BRM]White Rabbit in rust_offtopic
Ну, напиши лямбду, посмотри
источник

[

[BRM]White Rabbit in rust_offtopic
В шарпах тип лямбды нельзя выводить
источник

TK

Traveller Kolsky in rust_offtopic
impl Fn/FnMut/FnOnce(ty1, ty2, ty3) -> ret
источник

TK

Traveller Kolsky in rust_offtopic
Сам тип анонимен
источник

CD

Constantine Drozdov in rust_offtopic
найс тонна бойлерплейт кода
источник

SP

Stanislav Popov in rust_offtopic
где то по ту сторону
источник

SP

Stanislav Popov in rust_offtopic
I am working on better typeclasses for our classes project.

What I want is Supports[TypeClassName] type. It has some problems.

First of all, we cannot use Supports[TypeClassDefinedByFunction]. Why? Because mypy thinks that Supports[to_json] (when to_json is a FunctionDef node) is not valid as a type. It is related to how semantic analyzer works. I am pretty sure that this will stay with us for a long type.

So, I've made an extra syntax for typeclasses that need to use Supports[] around Python classes.

I got this working:

class ToJson(Protocol):
   def __call__(self, arg: int) -> str:
       ...

to_json = typeclass(ToJson)

# It is the same as:
# @typeclass
# def to_json(arg) -> str:
#     ...

@to_json.instance(int)
def _to_json_int(arg: int) -> str:
   return str(arg)

@to_json.instance(str)
def _to_json_str(arg: str) -> str:
   return arg


The bad thing is that @typeclass cannot be applied to python classes, because mypy does not support it. So, we would have to stick to this two-step syntax.
источник

CD

Constantine Drozdov in rust_offtopic
у него как раз эта проблема
источник

CD

Constantine Drozdov in rust_offtopic
там поифан собственно случай std::function
источник

TK

Traveller Kolsky in rust_offtopic
Так много бойлерплейт кода, аж на два символа длиннее fn
источник