1#![doc = include_str!("../README.md")]
2#![no_std]
3#![forbid(unsafe_code)]
4#![deny(missing_docs)]
5#![cfg_attr(docsrs, feature(doc_cfg))]
6#![cfg_attr(test, allow(clippy::std_instead_of_alloc, clippy::std_instead_of_core))]
7#![deny(clippy::correctness)]
8#![warn(
9 clippy::suspicious,
10 clippy::style,
11 clippy::complexity,
12 clippy::perf,
13 clippy::cloned_instead_of_copied,
14 clippy::explicit_iter_loop,
15 clippy::implicit_clone,
16 clippy::inconsistent_struct_constructor,
17 clippy::manual_assert,
18 clippy::manual_let_else,
19 clippy::match_same_arms,
20 clippy::needless_pass_by_value,
21 clippy::semicolon_if_nothing_returned,
22 clippy::uninlined_format_args,
23 clippy::unnested_or_patterns,
24 clippy::std_instead_of_core,
25 clippy::std_instead_of_alloc,
26 clippy::alloc_instead_of_core,
27 clippy::undocumented_unsafe_blocks,
28 clippy::missing_const_for_fn
29)]
30#![allow(
31 clippy::mod_module_files,
32 clippy::self_named_module_files,
33 clippy::similar_names,
34 clippy::type_complexity,
35 clippy::must_use_candidate,
36 clippy::module_name_repetitions,
37 clippy::wildcard_imports,
38 clippy::items_after_statements
39)]
40
41mod config;
42mod driver;
43mod error;
44mod id;
45mod illuminance;
46mod measurement;
47mod power;
48mod register;
49mod threshold;
50mod timing;
51
52pub use config::{
53 ConfigDecodeError, ConfigurationSnapshot, Gain, IntegrationTime, MeasurementConfig,
54 Persistence, PowerState, ThresholdMonitorState,
55};
56pub use driver::{I2C_ADDRESS, Veml7700};
57pub use error::{
58 BusContext, ConfigurationError, Error, MeasureOnceError, MeasureStage, Operation, ProbeError,
59 ThresholdMonitorError, ThresholdMonitorStage,
60};
61pub use id::DeviceId;
62pub use illuminance::{MicroLux, NominalScale};
63pub use measurement::{
64 AlsCounts, DeviceSnapshot, MeasurementCapture, MeasurementPairCoherence, SnapshotMeasurement,
65 WhiteCounts,
66};
67pub use power::{PowerSavingConfig, PowerSavingDecodeError, PowerSavingMode, PowerSavingSnapshot};
68pub use threshold::{
69 ThresholdMonitorConfig, ThresholdStatus, ThresholdStatusDecodeError, Thresholds,
70};
71pub use timing::{
72 INTEGRATION_TOLERANCE_PERCENT, MEASUREMENT_MARGIN_US, MeasurementTiming, WAKE_UP_DELAY_US,
73};
74
75#[cfg(test)]
76extern crate alloc;
77#[cfg(test)]
78extern crate std;
79#[cfg(test)]
80mod testing;