Skip to content

Instantly share code, notes, and snippets.

View greyblake's full-sized avatar
🇺🇦
#StandWithUkraine

Serhii Potapov greyblake

🇺🇦
#StandWithUkraine
View GitHub Profile
@greyblake
greyblake / whatlang_vs_lingua.rs
Created April 22, 2021 16:31
Whatlang VS Lingua Performance
use lingua::LanguageDetectorBuilder;
use std::time::Instant;
const N: usize = 10_000;
fn main() {
let goethe = "Wir sollen eben nicht in Ruhe bleiben! Gleich wird uns, wenn wir zu genießen denken, Zur Übung unsrer Tapferkeit ein Feind, Zur Übung der Geduld ein Freund gegeben";
let pushkin = "Я помню чудное мгновенье: Передо мной явилась ты, Как мимолетное виденье, Как гений чистой красоты.";
let detector = LanguageDetectorBuilder::from_all_languages().build();
// USAGE EXAMPLE
render() {
const { currentUserState, nearEnv } = this.state;
return currentUserState.match({
notAsked: () => <HomePage />,
loading: () => <HomePage />,
failure: (err) => <>Error occurred</>,
success: (user) => <AppRouter currentUser={user} nearEnv={nearEnv} />,
@greyblake
greyblake / Result.ts
Created December 22, 2021 20:22
Result in TypeScript with normal pattern matching
type ResultInner<T, E> =
| { type: 'OK', value: T }
| { type: 'ERROR', error: E };
interface MatchHandlers<T, E, R> {
ok: (value: T) => R,
err: (error: E) => R,
}
class Result<T, E> {