Make julid_string() return a new stringy Julid.

This commit is contained in:
Joe Ardent 2023-12-28 17:19:38 -08:00
parent 34f85a95a0
commit f2ade6d85e
3 changed files with 9 additions and 7 deletions

View file

@ -1,6 +1,6 @@
[package] [package]
name = "julid-rs" name = "julid-rs"
version = "1.6.18033" version = "1.6.180339"
authors = ["Joe Ardent <code@ardent.nebcorp.com>"] authors = ["Joe Ardent <code@ardent.nebcorp.com>"]
edition = "2021" edition = "2021"
keywords = ["ulid", "library", "sqlite", "extension", "julid"] keywords = ["ulid", "library", "sqlite", "extension", "julid"]

View file

@ -1 +1 @@
1.618033 1.6180339

View file

@ -52,7 +52,7 @@ pub mod sqlite_plugin {
define_scalar_function(db, "julid_seconds", 1, julid_seconds, flags)?; define_scalar_function(db, "julid_seconds", 1, julid_seconds, flags)?;
define_scalar_function(db, "julid_counter", 1, julid_counter, flags)?; define_scalar_function(db, "julid_counter", 1, julid_counter, flags)?;
define_scalar_function(db, "julid_sortable", 1, julid_sortable, flags)?; define_scalar_function(db, "julid_sortable", 1, julid_sortable, flags)?;
define_scalar_function(db, "julid_string", 1, julid_string, flags)?; define_scalar_function(db, "julid_string", -1, julid_string, FunctionFlags::UTF8)?;
Ok(()) Ok(())
} }
@ -76,10 +76,14 @@ pub mod sqlite_plugin {
Ok(()) Ok(())
} }
/// Return the human-readable base32 Crockford encoding of this Julid. /// Return the human-readable base32 Crockford encoding of the given Julid,
/// or create a new one if no arguments.
///
/// ```text /// ```text
/// sqlite> select julid_string(julid_new()); /// sqlite> select julid_string(julid_new());
/// 01H6C7D9CT00009TF3EXXJHX4Y /// 01H6C7D9CT00009TF3EXXJHX4Y
/// sqlite> select julid_string();
/// 01HJSHZ0PN000EKP3H94R6TPWH
/// ``` /// ```
pub fn julid_string(context: *mut sqlite3_context, id: &[*mut sqlite3_value]) -> Result<()> { pub fn julid_string(context: *mut sqlite3_context, id: &[*mut sqlite3_value]) -> Result<()> {
if let Some(value) = id.get(0) { if let Some(value) = id.get(0) {
@ -90,9 +94,7 @@ pub mod sqlite_plugin {
let id: Julid = bytes.into(); let id: Julid = bytes.into();
api::result_text(context, id.as_string())?; api::result_text(context, id.as_string())?;
} else { } else {
return Err(sqlite_loadable::Error::new_message( api::result_text(context, Julid::new().as_string())?;
"Could not convert empty Julid to string",
));
} }
Ok(()) Ok(())