mirror of
https://github.com/tursodatabase/limbo.git
synced 2025-08-04 01:58:16 +00:00
32 lines
904 B
Rust
32 lines
904 B
Rust
#[cfg(feature = "uuid")]
|
|
mod uuid;
|
|
#[cfg(feature = "uuid")]
|
|
pub use uuid::{exec_ts_from_uuid7, exec_uuid, exec_uuidblob, exec_uuidstr, UuidFunc};
|
|
|
|
#[derive(Debug, Clone, PartialEq)]
|
|
pub enum ExtFunc {
|
|
#[cfg(feature = "uuid")]
|
|
Uuid(UuidFunc),
|
|
}
|
|
|
|
#[allow(unreachable_patterns)] // TODO: remove when more extension funcs added
|
|
impl std::fmt::Display for ExtFunc {
|
|
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
|
match self {
|
|
#[cfg(feature = "uuid")]
|
|
Self::Uuid(uuidfn) => write!(f, "{}", uuidfn),
|
|
_ => write!(f, "unknown"),
|
|
}
|
|
}
|
|
}
|
|
|
|
#[allow(unreachable_patterns)]
|
|
impl ExtFunc {
|
|
pub fn resolve_function(name: &str, num_args: usize) -> Option<ExtFunc> {
|
|
match name {
|
|
#[cfg(feature = "uuid")]
|
|
name => UuidFunc::resolve_function(name, num_args),
|
|
_ => None,
|
|
}
|
|
}
|
|
}
|