#urbit #formatting #parser #data #type #name #patp-patq

urbit-ob

Utilities for formatting and parsing Urbit's @p and @q data types (patp/patq)

2 unstable releases

0.2.0 Nov 4, 2023
0.1.0 Nov 3, 2023

#5 in #urbit

Download history 522/week @ 2024-10-30 368/week @ 2024-11-06 241/week @ 2024-11-13 344/week @ 2024-11-20 167/week @ 2024-11-27 13/week @ 2024-12-04 129/week @ 2024-12-11 60/week @ 2024-12-18 46/week @ 2025-01-01 140/week @ 2025-01-08 92/week @ 2025-01-15 7/week @ 2025-02-05 10/week @ 2025-02-12

70 downloads per month
Used in 2 crates (via axsys-noun)

MIT license

34KB
788 lines

urbit-ob

crate docs

Utilities for formatting and parsing Urbit's @p and @q data types (patp/patq).

Example

Generate all the planet names for a given star:

use urbit_ob::*;

fn all_planets(star: u16) -> Vec<String> {
    let star_val: u32 = star as u32;
    let mut p_names: Vec<String> = Vec::with_capacity(0xffff);
    for value in 0x0001..=0xffff {
        let p_val: u32 = (value << 16) | star_val;
        let p_name = patp(p_val);
        p_names.push(p_name);
    }
    p_names
}

fn main() {
    let star_val: u16 = patp2int("~rondev").unwrap();
    println!("{:?}", all_planets(star_val).first().unwrap())
}

See the Documentation for all features.


lib.rs:

Utilities for formatting and parsing Urbit's @p and @q data types (patp/patq).

Dependencies

~0.8–1.3MB
~29K SLoC