Skip to content

Instantly share code, notes, and snippets.

View evanrelf's full-sized avatar
🦀
carcinizing

Evan Relf evanrelf

🦀
carcinizing
View GitHub Profile
use crop::Rope;
#[must_use]
pub fn prev_grapheme_boundary(rope: &Rope, mut byte_offset: usize) -> Option<usize> {
if byte_offset == 0 {
return None;
}
byte_offset -= 1;
while !rope.is_grapheme_boundary(byte_offset) {
byte_offset -= 1;
@evanrelf
evanrelf / files
Last active February 22, 2025 07:48
#!/usr/bin/env bash
set -Eeuo pipefail
IFS=$'\n\t'
# https://github.com/evanrelf/indigo/tree/rust4
core=$(gum style --border normal "$(fd . --extension rs crates/core/src/ | as-tree --color always)")
tui=$(gum style --border normal "$(fd . --extension rs crates/tui/src/ | as-tree --color always)")
btree=$(gum style --border normal "$(fd . --extension rs crates/btree/src/ | as-tree --color always)")
#!/usr/bin/env runghc
-- ki, unfork, stm
{-# LANGUAGE BlockArguments #-}
{-# OPTIONS_GHC -Wall #-}
{-# OPTIONS_GHC -threaded #-}
import Control.Concurrent qualified as Concurrent
{-# LANGUAGE DataKinds #-}
{-# OPTIONS_GHC -Wall #-}
module X where
import Data.Kind (Type)
import GHC.TypeLits (KnownSymbol, Symbol)
type (:::) :: Symbol -> Type -> Type
data (:::) s a
use serde::{Deserialize, Deserializer, Serialize, Serializer};
use serde_json;
#[derive(Debug, Serialize, Deserialize)]
struct Foo(String);
#[derive(Debug, Serialize, Deserialize)]
struct Bar(String);
fn foo_ser<S>(value: &Foo, serializer: S) -> Result<S::Ok, S::Error>
@evanrelf
evanrelf / defer
Last active November 1, 2024 23:00
Modeled after how Rust behaves (`Drop`, panicking, and aborting).
#!/usr/bin/env bash
set -Eeuo pipefail
IFS=$'\n\t'
deferred=(true)
run_deferred() {
local status="$1"
abort() {
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE QualifiedDo #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE OverloadedLabels #-}
module X where
import Data.Functor.Identity (Identity (..))
import Data.Kind (Type)
import GHC.OverloadedLabels (IsLabel (..))
-- https://www.youtube.com/watch?v=dDtZLm7HIJs
{-# LANGUAGE BlockArguments #-}
module Main (main) where
import Control.Applicative
import Control.Monad (when)
import Data.Char
import Data.Foldable (for_)
#!/usr/bin/env runghc
{-# LANGUAGE BlockArguments #-}
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE NegativeLiterals #-}
{-# OPTIONS_GHC -Wall #-}
{-# OPTIONS_GHC -Wno-unused-top-binds #-}
const A: usize = 2;
const B: usize = 3;
#[allow(clippy::assertions_on_constants)]
const _: () = {
assert!(2 <= A && A <= (B + 1) / 2, "Not a valid (a,b)-tree");
assert!(A == (B / 2) + (B % 2), "Not a valid B-tree");
};