Crate hyperlane_utils

Source
Expand description

hyperlane-utils

A library providing utils for hyperlane.

Re-exports§

pub use ahash;
pub use futures;
pub use log;
pub use num_cpus;
pub use once_cell;
pub use serde;
pub use serde_json;
pub use serde_urlencoded;
pub use serde_xml_rs;
pub use simd_json;
pub use twox_hash;
pub use urlencoding;
pub use utoipa;
pub use utoipa_rapidoc;
pub use utoipa_swagger_ui;

Modules§

async
sync

Macros§

__print_message_common
Internal macro for handling common message printing logic.
arc
Creates a new atomic reference counted pointer.
b_tree_map
Creates a new BTreeMap instance.
b_tree_set
Creates a new BTreeSet instance.
binary_heap
Creates a new BinaryHeap<T>.
boxed
Creates a new Box instance.
cell
Creates a new Cell instance.
cin
Read a line from standard input as a String.
cin_parse
Parse input string into a value or a vector of values of a specified type.
clone
A helper macro to clone variables into closures or async blocks easily.
cout
Print formatted output to standard output using print!.
cout_endl
Print formatted output with a newline and flush the standard output buffer.
endl
Print a newline character and flush the standard output buffer.
execute
Execute a synchronous function with given arguments.
execute_async
Execute an asynchronous function and return a future.
future_fn
Generates an asynchronous closure that clones specified external variables and executes the given closure body asynchronously.
hash_map
Creates a new hash map instance.
hash_set
Creates a new HashSet instance.
join_paths
Combines multiple paths into a single valid path, handling overlapping slashes.
linked_list
Creates a new LinkedList instance.
mutex
Creates a new Mutex instance.
output_macro
Macro for outputting colored text to the terminal.
println_error
Prints an error message with red background and white text.
println_success
Prints a success message with green background and white text.
println_warning
Prints a warning message with yellow background and white text.
rc
Creates a new Rc (Reference Counted) instance.
refcell
Creates a new RefCell instance.
rw_lock
Creates a new RwLock instance.
string
Creates a new string instance.
vector
Creates a new vector instance.
vector_deque
Creates a new VecDeque instance.

Structs§

Broadcast
Represents a broadcast mechanism for sending messages to multiple receivers.
BroadcastMap
Represents a concurrent, thread-safe map of broadcast channels, keyed by string.
Charset
Handles string encoding and decoding operations.
ChunkStrategy
Configuration for chunking operations.
CompareVersion
Utility for comparing version strings.
Decode
Handles the decoding operations for the application.
Encode
Handles the encoding operations for the application.
FileDataString
A wrapper struct for file data in string format.
Log
Main configuration structure for log file output.
Output
Represents a colored text output with formatting options.
OutputBuilder
Builder pattern for constructing Output configurations.
OutputList
Represents a list of Output configurations for sequential execution.
OutputListBuilder
Builder pattern for constructing OutputList configurations.
ServerManager
Main structure for managing server processes.
ThreadPool
A thread pool that can execute tasks concurrently.
WebSocket
Represents a WebSocket instance.
WebSocketConfig
Configuration for a WebSocket connection.
Worker
A worker thread in the thread pool.

Enums§

BroadcastType
Represents the type of broadcast for WebSocket messages.
ChunkStrategyError
Errors that can occur during chunking operations.
Color
Predefined color constants for easy text formatting.
ColorType
Represents different types of colors that can be used for text formatting.
DecodeError
Represents errors that can occur during decoding.
EncodeError
Represents errors that can occur during encoding.
HotRestartError
Errors that can occur during hot restart process.
VersionComparison
Result of comparing two versions.
VersionError
Errors that can occur during version parsing and comparison.

Constants§

CHUNKIFY_CHUNK_INDEX_HEADER
HTTP header name for chunk index in chunking operations.
CHUNKIFY_FILE_ID_HEADER
HTTP header name for file ID in chunking operations.
CHUNKIFY_FILE_NAME_HEADER
HTTP header name for original file name in chunking operations.
CHUNKIFY_TOTAL_CHUNKS_HEADER
HTTP header name for total chunks count in chunking operations.
COMMON_YEAR
Common Year
DAYS
Days
DEBUG_DIR
Subdirectory name for debug logs.
DEFAULT_BROADCAST_SENDER_CAPACITY
Defines the default capacity for a broadcast sender.
DEFAULT_LOG_DIR
Default directory path for storing log files.
DEFAULT_LOG_FILE_SIZE
Default maximum size limit for log files in bytes.
DEFAULT_LOG_FILE_START_IDX
Default starting index number for log files.
DISABLE_LOG_FILE_SIZE
Special value indicating no size limit for log files.
ERROR_DIR
Subdirectory name for error logs.
INFO_DIR
Subdirectory name for info logs.
LEAP_YEAR
Leap Year
LOG_EXTENSION
File extension for log files.
MONTHS
Months

Traits§

AsyncErrorHandlerFunction
Trait alias for asynchronous error-handling functions used in a recoverable context.
AsyncRecoverableFunction
Trait alias for asynchronous functions that can be executed in a recoverable context.
BroadcastMapTrait
Defines the essential traits required for types that can be used as values in a BroadcastMap.
BroadcastTrait
Defines the essential traits required for types that can be broadcast.
ChunkNaming
Trait for generating chunk file names.
ErrorHandlerFunction
Trait alias for error-handling functions used in a recoverable context.
FunctionMutTrait
Trait alias for functions that can be executed in a recoverable context.
FunctionOnceTrait
Trait alias for functions that can be executed in a recoverable context.
FunctionTrait
Trait alias for functions that can be executed in a recoverable context.
HandleStrategy
Trait for handling chunk operations.
LogFuncTrait
Trait for log formatting functions.
RecoverableFunction
Trait alias for functions that can be executed in a recoverable context.

Functions§

append_to_file
Appends content to a file.
async_append_to_file
Appends content to a file asynchronously.
async_copy_dir_files
Asynchronously copies all files from the source directory to the destination directory.
async_copy_file
Asynchronously copies a file from the source path to the destination path.
async_delete_dir
Asynchronously deletes a directory and all its contents.
async_delete_file
Asynchronously deletes a file at the given path.
async_get_file_size
Gets the size of a file in bytes.
async_move_dir
Moves a directory and all its contents to another location asynchronously.
async_move_file
Moves a file from the source path to the destination path asynchronously.
async_read_from_file
Reads the content of a file and converts it to the specified type.
async_write_to_file
Writes content to a file asynchronously.
calculate_time
Calculates the current year, month, day, hour, minute, second, millisecond and microsecond.
common_log
Formats log data with timestamp for each line.
compute_date
Computes the year, month, and day from days since Unix epoch (1970-01-01).
copy_dir_files
Copies all files from the source directory to the destination directory.
copy_file
Copies a file from the source path to the destination path.
date
Gets the current day, without the time.
day
Gets the current day.
delete_dir
Deletes a directory and all its contents.
delete_file
Deletes a file at the given path.
get_file_size
Gets the size of a file in bytes.
gmt
Gets the current date and time in GMT format.
hot_restart
Starts hot restart process without waiting for completion.
hot_restart_wait
Starts hot restart process and waits for completion.
hour
Gets the current hour.
is_leap_year
Determines if a year is a leap year.
log_handler
Handles log data formatting by delegating to common_log.
micros
Gets the current timestamp in microseconds.
millis
Gets the current timestamp in milliseconds.
minute
Gets the current minute.
month
Gets the current month.
move_dir
Moves a directory and all its contents to another location.
move_file
Moves a file from the source path to the destination path.
output
Executes the output operation with the given formatting.
read_from_file
Reads the content of a file and converts it to the specified type.
second
Gets the current second.
time
Gets the current time, including the date and time.
time_micros
Gets the current time with microseconds, including the date and time.
time_millis
Gets the current time with milliseconds, including the date and time.
timestamp
Gets the current timestamp in seconds since Unix epoch.
timestamp_micros
Gets the current timestamp in microseconds since Unix epoch.
timestamp_millis
Gets the current timestamp in milliseconds since Unix epoch.
write_to_file
Writes content to a file.
year
Gets the current year.

Type Aliases§

ArcAsyncErrorHandlerFunction
Arc-wrapped asynchronous error handler function.
ArcAsyncRecoverableFunction
Arc-wrapped asynchronous recoverable function.
ArcLog
Thread-safe shared reference to a Log configuration.
ArcLogFunc
Thread-safe shared reference to a log formatting function.
AsyncSpawnResult
Result type for asynchronous spawn operations.
BroadcastMapReceiver
Represents a receiver endpoint for a broadcast channel within a map, allowing consumption of broadcasted messages.
BroadcastMapSendError
Represents an error that occurs when attempting to send a message via a broadcast channel within a map.
BroadcastMapSendResult
Represents the result of a broadcast map send operation, indicating either success with an optional receiver count or an error.
BroadcastMapSender
Represents a sender endpoint for a broadcast channel within a map, used to dispatch messages.
BroadcastReceiver
Represents a receiver endpoint for a broadcast channel, allowing consumption of broadcasted messages.
BroadcastSendError
Represents an error that occurs when attempting to send a message via broadcast.
BroadcastSendResult
Represents the result of a broadcast send operation, indicating either success with the number of receivers or an error.
BroadcastSender
Represents a sender endpoint for a broadcast channel, used to dispatch messages to all subscribed receivers.
Capacity
Represents the maximum capacity or buffer size of a broadcast channel.
ChunkStrategyResult
Result type for chunk strategy operations.
DashMapStringBroadcast
A concurrent, thread-safe map where keys are strings and values are broadcast channels.
ListLog
A collection of named log formatting functions.
LogArcLock
Thread-safe shared reference to a Log configuration instance.
LogFunc
Trait object representing a log formatting function.
LogListArcLock
Thread-safe shared reference to a collection of log functions.
NewChunkStrategyResult
Result type for creating new chunk strategies.
OptionBroadcast
Represents an optional broadcast channel.
OptionBroadcastMapReceiver
Represents an optional receiver endpoint for a broadcast channel within a map.
OptionBroadcastMapSender
Represents an optional sender endpoint for a broadcast channel within a map.
OptionReceiverCount
Represents an optional count of active receivers.
ReceiverCount
Represents the number of active receivers subscribed to a broadcast channel.
ResultHotRestartError
Result type alias for hot restart operations.
SendErrorBox
Error type for failed job submissions.
SendResult
Result type for job submission operations.
ServerManagerError
Error type for server management operations.
ServerManagerHook
Type alias for the hook functions.
ServerManagerResult
Result type for server management operations.
SpawnError
Error type for spawn operations.
SyncSpawnResult
Result type for synchronous spawn operations.
ThreadPoolJob
A job that can be executed by the thread pool.

Attribute Macros§

aborted
Handles aborted request scenarios.
attribute
Extracts a specific attribute value into a variable.
attributes
Extracts all attributes into a HashMap variable.
closed
Handles closed connection scenarios.
connect
Restricts function execution to HTTP CONNECT requests only.
delete
Restricts function execution to HTTP DELETE requests only.
filter_unknown
Handles requests with any unknown characteristics.
filter_unknown_method
Handles requests with unknown or non-standard HTTP methods.
filter_unknown_upgrade
Handles requests with unknown or non-standard upgrade protocols.
filter_unknown_version
Handles requests with unknown or non-standard HTTP versions.
flush
Flushes the response stream after function execution.
get
Restricts function execution to HTTP GET requests only.
h2c
Restricts function execution to HTTP/2 Cleartext (h2c) requests only.
head
Restricts function execution to HTTP HEAD requests only.
host
Restricts function execution to requests with a specific host.
host_filter
Filters requests that have no host header.
http
Restricts function execution to standard HTTP requests only.
http0_9
Restricts function execution to HTTP/0.9 requests only.
http2
Restricts function execution to HTTP/2 requests only.
http3
Restricts function execution to HTTP/3 requests only.
http1_0
Restricts function execution to HTTP/1.0 requests only.
http1_1
Restricts function execution to HTTP/1.1 requests only.
http1_1_or_higher
Restricts function execution to HTTP/1.1 or higher protocol versions.
hyperlane
Creates a new instance of a specified type with a given variable name.
methods
Allows function to handle multiple HTTP methods.
options
Restricts function execution to HTTP OPTIONS requests only.
patch
Restricts function execution to HTTP PATCH requests only.
post
Restricts function execution to HTTP POST requests only.
post_hook
Executes a specified function after the main handler function.
pre_hook
Executes a specified function before the main handler function.
put
Restricts function execution to HTTP PUT requests only.
referer
Restricts function execution to requests with a specific referer.
referer_filter
Filters requests that have a specific referer header.
request_body
Extracts the raw request body into a specified variable.
request_body_json
Parses the request body as JSON into a specified variable and type.
request_cookie
Extracts a specific cookie value or all cookies into a variable.
request_cookies
Extracts all cookies as a raw string into a variable.
request_header
Extracts a specific HTTP request header into a variable.
request_headers
Extracts all HTTP request headers into a collection variable.
request_path
Extracts the HTTP request path into a variable.
request_query
Extracts a specific request query parameter into a variable.
request_querys
Extracts all request query parameters into a collection variable.
request_version
Extracts the HTTP request version into a variable.
response_body
Sets the HTTP response body.
response_header
Sets or replaces a specific HTTP response header.
response_reason_phrase
Sets the HTTP reason phrase for the response.
response_status_code
Sets the HTTP status code for the response.
response_version
Sets the HTTP response version.
route_param
Extracts a specific route parameter into a variable.
route_params
Extracts all route parameters into a collection variable.
send
Automatically sends the complete response after function execution.
send_body
Automatically sends only the response body after function execution.
send_once
Sends the complete response exactly once after function execution.
send_once_body
Sends only the response body exactly once after function execution.
tls
Restricts function execution to TLS-encrypted requests only.
trace
Restricts function execution to HTTP TRACE requests only.
ws
Restricts function execution to WebSocket upgrade requests only.

Derive Macros§

CustomDebug
A procedural macro that implements the std::fmt::Debug trait for a type, with support for the #[debug(skip)] attribute to skip specific fields.
Data
This is an example of how to use the Lombok procedural macro with get, get_mut, and set attributes.
DisplayDebug
A procedural macro that implements the std::fmt::Display trait for a type, using the standard debug format ({:?}) for formatting.
DisplayDebugFormat
A procedural macro that implements the std::fmt::Display trait for a type, using the detailed debug format ({:#?}) for formatting.
Getter
This is an example of how to use the Lombok procedural macro with get attributes.
GetterMut
This is an example of how to use the Lombok procedural macro with get_mut attributes.
Setter
This is an example of how to use the Lombok procedural macro with set attributes.