Skip to main content

oxanus/
lib.rs

1#![doc = include_str!("../README.md")]
2#![deny(unsafe_code)]
3#![warn(
4    clippy::all,
5    clippy::await_holding_lock,
6    clippy::char_lit_as_u8,
7    clippy::checked_conversions,
8    clippy::clone_on_ref_ptr,
9    clippy::dbg_macro,
10    clippy::debug_assert_with_mut_call,
11    clippy::doc_markdown,
12    clippy::empty_enums,
13    clippy::enum_glob_use,
14    clippy::exit,
15    clippy::expl_impl_clone_on_copy,
16    clippy::explicit_deref_methods,
17    clippy::explicit_into_iter_loop,
18    clippy::fallible_impl_from,
19    clippy::filter_map_next,
20    clippy::flat_map_option,
21    clippy::float_cmp_const,
22    clippy::fn_params_excessive_bools,
23    clippy::from_iter_instead_of_collect,
24    clippy::if_let_mutex,
25    clippy::implicit_clone,
26    clippy::imprecise_flops,
27    clippy::indexing_slicing,
28    clippy::inefficient_to_string,
29    clippy::invalid_upcast_comparisons,
30    clippy::large_digit_groups,
31    clippy::large_stack_arrays,
32    clippy::large_types_passed_by_value,
33    clippy::let_unit_value,
34    clippy::linkedlist,
35    clippy::lossy_float_literal,
36    clippy::macro_use_imports,
37    clippy::manual_ok_or,
38    clippy::map_err_ignore,
39    clippy::map_flatten,
40    clippy::map_unwrap_or,
41    clippy::match_same_arms,
42    clippy::match_wild_err_arm,
43    clippy::match_wildcard_for_single_variants,
44    clippy::mem_forget,
45    clippy::missing_enforced_import_renames,
46    clippy::mut_mut,
47    clippy::mutex_integer,
48    clippy::needless_borrow,
49    clippy::needless_continue,
50    clippy::needless_for_each,
51    clippy::option_option,
52    clippy::path_buf_push_overwrite,
53    clippy::ptr_as_ptr,
54    clippy::rc_mutex,
55    clippy::ref_option_ref,
56    clippy::rest_pat_in_fully_bound_structs,
57    clippy::same_functions_in_if_condition,
58    clippy::semicolon_if_nothing_returned,
59    clippy::single_match_else,
60    clippy::string_add_assign,
61    clippy::string_add,
62    clippy::string_lit_as_bytes,
63    clippy::todo,
64    clippy::trait_duplication_in_bounds,
65    clippy::unimplemented,
66    clippy::unnested_or_patterns,
67    clippy::unused_self,
68    clippy::useless_transmute,
69    clippy::verbose_file_reads,
70    clippy::zero_sized_map_values,
71    future_incompatible,
72    nonstandard_style,
73    rust_2018_idioms,
74    unexpected_cfgs
75)]
76#![allow(clippy::unused_self, clippy::single_match_else, clippy::todo)]
77
78mod config;
79mod context;
80mod coordinator;
81mod dispatcher;
82mod drainer;
83mod error;
84mod executor;
85mod job_envelope;
86mod launcher;
87mod queue;
88mod result_collector;
89mod semaphores_map;
90mod stats;
91mod storage;
92mod storage_builder;
93mod storage_internal;
94mod storage_keys;
95mod throttler;
96mod worker;
97mod worker_event;
98mod worker_registry;
99
100#[cfg(feature = "registry")]
101mod registry;
102
103#[cfg(feature = "prometheus")]
104pub mod prometheus;
105
106#[cfg(test)]
107mod test_helper;
108
109pub use crate::config::Config;
110pub use crate::context::{Context, JobState};
111pub use crate::drainer::drain;
112pub use crate::error::OxanusError;
113pub use crate::job_envelope::{JobConflictStrategy, JobId, JobMeta};
114pub use crate::launcher::run;
115pub use crate::queue::{Queue, QueueConfig, QueueKind, QueueThrottle};
116pub use crate::storage::Storage;
117pub use crate::storage_builder::{StorageBuilder, StorageBuilderTimeouts};
118pub use crate::worker::Worker;
119pub use crate::worker_registry::{WorkerConfig, WorkerConfigKind, job_factory};
120
121#[cfg(feature = "registry")]
122pub use registry::*;
123
124#[cfg(feature = "macros")]
125pub use oxanus_macros::{Queue, Registry, Worker};