Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 0f912c12b2 | |||
| b225afdd1b | |||
| f0bd32450d | |||
| bb17f153de | |||
| ec8bfad390 | |||
| 8a1b13b139 |
3
.geminiignore
Normal file
3
.geminiignore
Normal file
@ -0,0 +1,3 @@
|
||||
/target/
|
||||
/package/
|
||||
.env
|
||||
667
Cargo.lock
generated
667
Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
@ -10,14 +10,14 @@ version = "0.1.0"
|
||||
edition = "2024"
|
||||
|
||||
[dependencies]
|
||||
pgrx = "0.15.0"
|
||||
pgrx = "0.16.1"
|
||||
serde = { version = "1.0", features = ["derive"] }
|
||||
serde_json = "1.0"
|
||||
lazy_static = "1.5.0"
|
||||
boon = { path = "validator" }
|
||||
|
||||
[dev-dependencies]
|
||||
pgrx-tests = "0.15.0"
|
||||
pgrx-tests = "0.16.1"
|
||||
|
||||
[lib]
|
||||
crate-type = ["cdylib", "lib"]
|
||||
|
||||
5
flow
5
flow
@ -11,7 +11,7 @@ source ./flows/rust
|
||||
POSTGRES_VERSION="17"
|
||||
POSTGRES_CONFIG_PATH="/opt/homebrew/opt/postgresql@${POSTGRES_VERSION}/bin/pg_config"
|
||||
DEPENDENCIES+=(icu4c pkg-config "postgresql@${POSTGRES_VERSION}")
|
||||
CARGO_DEPENDENCIES=(cargo-pgrx==0.15.0)
|
||||
CARGO_DEPENDENCIES=(cargo-pgrx==0.16.1)
|
||||
GITEA_ORGANIZATION="cellular"
|
||||
GITEA_REPOSITORY="jspg"
|
||||
|
||||
@ -49,7 +49,8 @@ build() {
|
||||
|
||||
# Create the source tarball excluding specified patterns
|
||||
info "Creating tarball: ${tarball_path}"
|
||||
if tar --exclude='.git*' --exclude='./target' --exclude='./package' --exclude='./flows' --exclude='./flow' -czf "${tarball_path}" .; then
|
||||
# Set COPYFILE_DISABLE=1 to prevent macOS tar from including ._ metadata files
|
||||
if COPYFILE_DISABLE=1 tar --exclude='.git*' --exclude='./target' --exclude='./package' --exclude='./flows' --exclude='./flow' -czf "${tarball_path}" .; then
|
||||
success "Successfully created source tarball: ${tarball_path}"
|
||||
else
|
||||
error "Failed to create source tarball."
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
[package]
|
||||
name = "boon"
|
||||
version = "0.6.1"
|
||||
edition = "2021"
|
||||
edition = "2024"
|
||||
description = "JSONSchema (draft 2020-12, draft 2019-09, draft-7, draft-6, draft-4) Validation"
|
||||
readme = "README.md"
|
||||
repository = "https://github.com/santhosh-tekuri/boon"
|
||||
@ -12,27 +12,27 @@ categories = ["web-programming"]
|
||||
exclude = [ "tests", ".github", ".gitmodules" ]
|
||||
|
||||
[dependencies]
|
||||
pgrx = "0.15.0"
|
||||
pgrx = "0.16.1"
|
||||
serde = "1"
|
||||
serde_json = "1"
|
||||
regex = "1.10.3"
|
||||
regex-syntax = "0.8.2"
|
||||
regex = "1.12.2"
|
||||
regex-syntax = "0.8.8"
|
||||
url = "2"
|
||||
fluent-uri = "0.3.2"
|
||||
idna = "1.0"
|
||||
fluent-uri = "0.4.1"
|
||||
idna = "1.1"
|
||||
percent-encoding = "2"
|
||||
once_cell = "1"
|
||||
base64 = "0.22"
|
||||
ahash = "0.8.3"
|
||||
ahash = "0.8.12"
|
||||
appendlist = "1.4"
|
||||
|
||||
[dev-dependencies]
|
||||
pgrx-tests = "0.15.0"
|
||||
pgrx-tests = "0.16.1"
|
||||
serde = { version = "1.0", features = ["derive"] }
|
||||
serde_yaml = "0.9"
|
||||
ureq = "2.12"
|
||||
ureq = "3.1"
|
||||
rustls = "0.23"
|
||||
criterion = "0.5"
|
||||
criterion = "0.7"
|
||||
|
||||
[[bench]]
|
||||
name = "bench"
|
||||
|
||||
@ -137,7 +137,7 @@ impl Visitor for Translator<'_> {
|
||||
Ast::ClassPerl(perl) => {
|
||||
self.replace_class_class(perl);
|
||||
}
|
||||
Ast::Literal(ref literal) => {
|
||||
Ast::Literal(literal) => {
|
||||
if let Literal {
|
||||
kind: LiteralKind::Special(SpecialLiteralKind::Bell),
|
||||
..
|
||||
|
||||
@ -444,8 +444,8 @@ impl Hash for HashedValue<'_> {
|
||||
fn hash<H: Hasher>(&self, state: &mut H) {
|
||||
match self.0 {
|
||||
Value::Null => state.write_u32(3_221_225_473), // chosen randomly
|
||||
Value::Bool(ref b) => b.hash(state),
|
||||
Value::Number(ref num) => {
|
||||
Value::Bool(b) => b.hash(state),
|
||||
Value::Number(num) => {
|
||||
if let Some(num) = num.as_f64() {
|
||||
num.to_bits().hash(state);
|
||||
} else if let Some(num) = num.as_u64() {
|
||||
@ -454,13 +454,13 @@ impl Hash for HashedValue<'_> {
|
||||
num.hash(state);
|
||||
}
|
||||
}
|
||||
Value::String(ref str) => str.hash(state),
|
||||
Value::Array(ref arr) => {
|
||||
Value::String(str) => str.hash(state),
|
||||
Value::Array(arr) => {
|
||||
for item in arr {
|
||||
HashedValue(item).hash(state);
|
||||
}
|
||||
}
|
||||
Value::Object(ref obj) => {
|
||||
Value::Object(obj) => {
|
||||
let mut hash = 0;
|
||||
for (pname, pvalue) in obj {
|
||||
// We have no way of building a new hasher of type `H`, so we
|
||||
|
||||
Reference in New Issue
Block a user