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};