versatiles_core 4.7.0

A toolbox for converting, checking and serving map tiles in various formats.
Documentation
//! This module re-exports all the data reader and writer modules, along with the value reader and writer modules.
//!
//! # Overview
//!
//! The module provides a unified interface for importing all the necessary components for reading and writing data
//! in various formats and from various sources. It includes readers and writers for blobs, files, HTTP sources (if enabled),
//! and more. The value readers and writers support different byte orders and offer functionality for handling various data types.
//!
//! # Examples
//!
//! ```rust
//! // Importing all the necessary components
//! use versatiles_core::io::*;
//!
//! fn main() {
//!     // Now you can use all the imported modules and structs, such as `DataReaderBlob`, `DataWriterFile`, etc.
//! }
//! ```

/// `User-Agent` header sent with every HTTP(S) request VersaTiles makes.
///
/// It identifies the software, its version, and an info URL so tile and data
/// providers can recognize (and, if needed, contact about) VersaTiles traffic,
/// e.g. `versatiles/4.1.5 (+https://versatiles.org)`.
pub const USER_AGENT: &str = concat!("versatiles/", env!("CARGO_PKG_VERSION"), " (+https://versatiles.org)");

mod data_reader;
mod data_reader_blob;
mod data_reader_file;
mod data_reader_http;
#[cfg(feature = "ssh2")]
mod data_reader_sftp;
mod data_writer;
mod data_writer_blob;
mod data_writer_file;
#[cfg(feature = "ssh2")]
mod data_writer_sftp;
mod network_reader;
#[cfg(feature = "ssh2")]
mod network_writer;
mod retry;
#[cfg(feature = "ssh2")]
mod sftp_pool;
#[cfg(feature = "ssh2")]
pub mod sftp_utils;
#[cfg(feature = "ssh2")]
mod sftp_wrappers;
#[cfg(all(feature = "ssh2", test, unix))]
pub(crate) mod test_sftp_server;
#[cfg(feature = "ssh2")]
pub use sftp_wrappers::*;
mod value_reader;
mod value_reader_blob;
mod value_reader_file;
mod value_reader_slice;
mod value_writer;
mod value_writer_blob;
mod value_writer_file;

pub use data_reader::*;
pub use data_reader_blob::*;
pub use data_reader_file::*;
pub use data_reader_http::*;
#[cfg(feature = "ssh2")]
pub use data_reader_sftp::*;
pub use data_writer::*;
pub use data_writer_blob::*;
pub use data_writer_file::*;
#[cfg(feature = "ssh2")]
pub use data_writer_sftp::*;
pub use value_reader::*;
pub use value_reader_blob::*;
pub use value_reader_file::*;
pub use value_reader_slice::*;
pub use value_writer::*;
pub use value_writer_blob::*;
pub use value_writer_file::*;

#[cfg(test)]
mod tests {
	use super::USER_AGENT;

	#[test]
	fn user_agent_has_expected_shape() {
		// e.g. "versatiles/4.1.5 (+https://versatiles.org)"
		assert!(USER_AGENT.starts_with("versatiles/"), "got: {USER_AGENT}");
		assert!(USER_AGENT.contains(env!("CARGO_PKG_VERSION")), "got: {USER_AGENT}");
		assert!(USER_AGENT.contains("(+https://versatiles.org)"), "got: {USER_AGENT}");
	}
}