church-core/Cargo.toml
Benjamin Slingo f04644856b Fix compilation errors and complete modular refactoring
Major changes:
• Remove Android support completely (deleted bindings/android/)
• Modularize uniffi_wrapper.rs (1,756→5 lines, split into focused modules)
• Reduce DRY violations in api.rs (620→292 lines)
• Fix all 20+ compilation errors to achieve clean build

Structural improvements:
• Split uniffi_wrapper into specialized modules: events, sermons, bible, contact, config, streaming, parsing
• Clean up dependencies (remove unused Android/JNI deps)
• Consolidate duplicate API functions
• Standardize error handling and validation

Bug fixes:
• Add missing ClientEvent fields (image_url, is_upcoming, is_today)
• Fix method name mismatches (update_bulletin→update_admin_bulletin)
• Correct ValidationResult struct (use errors field)
• Resolve async/await issues in bible.rs
• Fix event conversion type mismatches
• Add missing EventSubmission.image_mime_type field

The codebase now compiles cleanly with only warnings and is ready for further modular improvements.
2025-08-30 16:49:35 -04:00

82 lines
1.7 KiB
TOML

[package]
name = "church-core"
version = "0.1.0"
edition = "2021"
description = "Shared Rust crate for church application APIs and data models"
authors = ["Benjamin Slingo <benjamin@example.com>"]
license = "MIT"
[dependencies]
# HTTP client (using rustls to avoid OpenSSL cross-compilation issues)
reqwest = { version = "0.11", features = ["json", "multipart", "stream", "rustls-tls"], default-features = false }
tokio = { version = "1.0", features = ["full"] }
# JSON handling
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
# Date/time handling
chrono = { version = "0.4", features = ["serde"] }
# Error handling
thiserror = "1.0"
anyhow = "1.0"
# Caching and utilities
moka = { version = "0.12", features = ["future"] }
async-trait = "0.1"
rand = "0.8"
urlencoding = "2.1"
# UUID generation
uuid = { version = "1.0", features = ["v4", "serde"] }
# Base64 encoding for image caching
base64 = "0.21"
# Regular expressions
regex = "1.10"
# System calls for iOS device detection
libc = "0.2"
# HTML processing
html2text = "0.12"
# UniFFI for mobile bindings
uniffi = { version = "0.27", features = ["tokio"] }
# Build dependencies
[build-dependencies]
uniffi = { version = "0.27", features = ["build"], optional = true }
uniffi_bindgen = { version = "0.27", features = ["clap"] }
# Bin dependencies
[dependencies.uniffi_bindgen_dep]
package = "uniffi_bindgen"
version = "0.27"
optional = true
# Testing dependencies
[dev-dependencies]
tokio-test = "0.4"
mockito = "0.31"
serde_json = "1.0"
tempfile = "3.8"
pretty_assertions = "1.4"
[features]
default = ["native"]
native = []
ffi = ["uniffi/tokio"]
uniffi = ["ffi", "uniffi/build"]
[lib]
crate-type = ["cdylib", "rlib"]
[[bin]]
name = "church-core-test"
path = "src/bin/test.rs"