concurrent-pqueue 0.4.0

A high-performance, thread-safe priority queue with dynamic priority updates
Documentation
# concurrent-pqueue

Core library implementing a thread-safe priority queue with dynamic priority updates.

## Architecture

**Dual-index design** for optimal performance:
- `BTreeMap<i64, VecDeque<Arc<T>>>` - Ordered priority access (highest first)
- `HashMap<Arc<T>, i64>` - O(1) item-to-score lookups
- `Arc<Mutex<PriorityQueue<T>>>` - Internal thread-safe wrapper

**Key characteristics:**
- Additive scoring: Updates add to existing scores
- FIFO ordering: Equal priority items processed in insertion order
- Zero-copy memory model: Queue only maintains a single copy of an object stored in the queue across all internal representations
- Zero-copy queue cloning: For sharing queue across threads
- Built-in statistics tracking

## Usage

```rust
use concurrent_pqueue::PQueue;

let queue = PQueue::<String>::new();

// Basic operations
queue.update("item1".to_string(), 10);
let item = queue.next();           // Remove highest priority
let item = queue.peek();           // View without removing
let score = queue.score(&item);    // Get current priority
let stats = queue.stats();         // Queue statistics
```

## Performance

- **Insert/Update**: O(log n)
- **Peek**: O(log n)
- **Next (pop)**: O(log n)
- **Score lookup**: O(1)
- **Space**: O(n)

## Thread Safety

Thread-safe by design. Clone instances share the same internal queue:

```rust
let queue = PQueue::<String>::new();
let queue_clone = queue.clone(); // Same underlying data

// Use across threads
tokio::spawn(async move {
    queue_clone.update("task".to_string(), 100);
});
```

## Requirements

- **Type constraints**: `T: Eq + Hash + Clone`
- **Rust version**: 1.70+
- **Dependencies**: `chrono` for timestamps