cloudkit 0.3.4

Safe Rust bindings for Apple's CloudKit framework — iCloud databases and sync on macOS
Documentation
use cloudkit::prelude::*;

fn main() {
    let notification = CKNotificationInfo::new()
        .with_alert_body("Update available")
        .with_desired_keys(vec!["title".into(), "updatedAt".into()])
        .with_content_available(true);

    let query = CKQuerySubscription::new(
        "Task",
        "TRUEPREDICATE",
        "task-query-sub",
        QuerySubscriptionOptions::FIRES_ON_RECORD_CREATION,
    )
    .with_notification_info(notification.clone());

    let zone = CKRecordZoneSubscription::new(
        CKRecordZoneID::new("Tasks", "__defaultOwner__"),
        "task-zone-sub",
    )
    .with_notification_info(notification.clone());
    let database = CKDatabaseSubscription::new("task-db-sub").with_notification_info(notification);

    println!(
        "query={} zone={} database={}",
        query.base().subscription_id(),
        zone.base().subscription_id(),
        database.base().subscription_id()
    );
    println!("✅ subscription area OK");
}