mirror of
https://github.com/teloxide/teloxide.git
synced 2024-12-22 22:46:39 +01:00
Update README.md
This commit is contained in:
parent
4566743cf8
commit
1df58eba02
1 changed files with 1 additions and 1 deletions
|
@ -34,7 +34,7 @@
|
|||
- [Contributing](https://github.com/teloxide/teloxide#contributing)
|
||||
|
||||
## Features
|
||||
- **Functional design.** Instead of writing separate handlers for every possible user action, all having access to some shared mutable state, you treat external events as a [stream](https://docs.rs/futures/latest/futures/prelude/trait.Stream.html) and apply a series of transformations to it.
|
||||
- **Higher-order design.** teloxide supports [higher-order programming](https://en.wikipedia.org/wiki/Higher-order_programming) by making [streams](https://docs.rs/futures/latest/futures/prelude/trait.Stream.html) a [first-class citizen](https://en.wikipedia.org/wiki/First-class_citizen): feel free to demultiplex them, apply arbitrary transformations, pass to/return from other functions, [lazily evaluate them](https://en.wikipedia.org/wiki/Lazy_evaluation), concurrently process their items, and much more, thereby achieving extremely flexible design.
|
||||
|
||||
- **Type-safe.** All the API [types](https://docs.rs/teloxide/latest/teloxide/types/index.html) and [methods](https://docs.rs/teloxide/0.2.0/teloxide/requests/index.html) are implemented with heavy use of [**ADT**s](https://en.wikipedia.org/wiki/Algebraic_data_type) to enforce type-safety and tight integration with IDEs. Bot's commands [have precise types too](https://github.com/teloxide/teloxide#commands), thereby serving as a self-documenting code and respecting the [parse, don't validate](https://lexi-lambda.github.io/blog/2019/11/05/parse-don-t-validate/) programming idiom.
|
||||
|
||||
|
|
Loading…
Reference in a new issue