Loco 一個(gè)為全棧開(kāi)發(fā)者提供的 Rust Web 框架
你需要對(duì) Rust 有一定的了解。你需要知道如何構(gòu)建、測(cè)試和運(yùn)行 Rust 項(xiàng)目,使用過(guò)一些流行的庫(kù),比如 clap、regex、tokio、axum 或其他 Web 框架,不過(guò)你不需要學(xué)會(huì)很復(fù)雜的東西。在 Loco 中沒(méi)有瘋狂的生命周期定義或復(fù)雜/過(guò)于神奇的宏,你只需要知道它們是如何工作的。
Loco 受到 Rails 的強(qiáng)烈啟發(fā)。如果你了解 Rails 和 Rust,你會(huì)感到非常熟悉。如果你只了解 Rails 并且是 Rust 的新手,你會(huì)覺(jué)得 Loco 令人耳目一新。
該項(xiàng)目目前仍處于開(kāi)發(fā)階段。
用 rust 實(shí)現(xiàn)的國(guó)際象棋(終端版)
docker run --rm -it ghcr.io/thomas-mauran/chess-tui:main
norm:字符串相似匹配算法庫(kù)
這個(gè)庫(kù)實(shí)現(xiàn)了與 fzf 工具相同的模糊匹配算法,其中:
FzfV1 :fzf 在使用--algo=v1啟動(dòng)時(shí)使用的算法
FzfV2 :fzf 在沒(méi)有任何額外標(biāo)志或使用--algo=v2時(shí)啟動(dòng)時(shí)使用的算法
use std::ops::Range;
use norm::fzf::{FzfParser, FzfV2};
use norm::Metric;
letmut fzf = FzfV2::new();
letmut parser = FzfParser::new();
let query = parser.parse("aa");
let cities = ["Geneva", "Ulaanbaatar", "New York City", "Adelaide"];
letmut results = cities
.iter()
.copied()
.filter_map(|city| fzf.distance(query, city).map(|dist| (city, dist)))
.collect::
// We sort the results by distance in ascending order, so that the best match
// will be at the front of the vector.
results.sort_by_key(|(_city, dist)| *dist);
assert_eq!(results.len(), 2);
assert_eq!(results[0].0, "Adelaide");
assert_eq!(results[1].0, "Ulaanbaatar");
// We can also find out which sub-strings of each candidate matched the query.
letmut ranges: Vec
let _ = fzf.distance_and_ranges(query, results[0].0, &mut ranges);
assert_eq!(ranges.len(), 2);
assert_eq!(ranges[0], 0..1); // "A" in "Adelaide"
assert_eq!(ranges[1], 4..5); // "a" in "Adelaide"
ranges.clear();
let _ = fzf.distance_and_ranges(query, results[1].0, &mut ranges);
assert_eq!(ranges.len(), 1);
assert_eq!(ranges[0], 2..4); // The first "aa" in "Ulaanbaatar"
審核編輯:劉清
-
Rust
+關(guān)注
關(guān)注
1文章
229瀏覽量
6635
原文標(biāo)題:【Rust日?qǐng)?bào)】2023-12-05 Loco 一個(gè)為全棧開(kāi)發(fā)者提供的 Web 框架
文章出處:【微信號(hào):Rust語(yǔ)言中文社區(qū),微信公眾號(hào):Rust語(yǔ)言中文社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論