//! A finger protocol client library implementing
//! [RFC 1288](https://datatracker.ietf.org/doc/html/rfc1288) and
//! [RFC 742](https://datatracker.ietf.org/doc/html/rfc742).
//!
//! This crate provides:
//! - [`query::Query`] -- parsing finger query strings into structured queries
//! - [`protocol::build_query_string`] -- constructing RFC 1288 wire-format query strings
//! - [`protocol::finger`] -- executing a finger query over TCP (returns a UTF-8 string)
//! - [`protocol::finger_raw`] -- executing a finger query over TCP (returns raw bytes)
//!
//! # Example
//!
//! ```no_run
//! use std::time::Duration;
//! use digit::query::Query;
//! use digit::protocol::finger;
//!
//! let query = Query::parse(Some("user@example.com"), false, 79).unwrap();
//! let response = finger(&query, Duration::from_secs(10), 1_048_576).unwrap();
//! println!("{}", response);
//! ```