#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

#4 in #urbit

Download history 2/week @ 2024-04-10 11/week @ 2024-04-17 2/week @ 2024-06-19 33/week @ 2024-06-26 3/week @ 2024-07-03 17/week @ 2024-07-17 42/week @ 2024-07-24

66 downloads per month

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.4MB
~31K SLoC