lib

Core libraries for Radroots
git clone https://radroots.dev/git/lib.git
Log | Files | Refs | README

lib.rs (1143B)


      1 //! Host-neutral asynchronous client engine for Radroots.
      2 //!
      3 //! Advanced hosts compose capabilities through [`ClientBuilder`] and operate
      4 //! through a cloneable [`Client`]. All fallible root operations use [`Result`]
      5 //! and the SDK-owned [`Error`] boundary.
      6 //!
      7 //! Constructing an empty builder performs no I/O and makes missing composition
      8 //! explicit:
      9 //!
     10 //! ```
     11 //! use radroots_sdk::ClientBuilder;
     12 //!
     13 //! let result = ClientBuilder::new().build();
     14 //! assert!(result.is_err());
     15 //! ```
     16 //!
     17 //! Native structs are constructor-led and representation-private. Hosts must
     18 //! not depend on field layout:
     19 //!
     20 //! ```compile_fail
     21 //! use radroots_sdk::ClientBuilder;
     22 //!
     23 //! let _ = ClientBuilder { storage: None };
     24 //! ```
     25 
     26 #![forbid(unsafe_code)]
     27 #![doc = include_str!("../README.md")]
     28 #![cfg_attr(coverage_nightly, feature(coverage_attribute))]
     29 
     30 mod adapters;
     31 
     32 pub mod capability;
     33 pub mod client;
     34 pub mod diagnostics;
     35 pub mod error;
     36 pub mod farm;
     37 pub mod listing;
     38 pub mod signing;
     39 pub mod storage;
     40 pub mod sync;
     41 pub mod trade;
     42 pub mod transport;
     43 
     44 pub use crate::client::{Client, ClientBuilder};
     45 pub use crate::error::{Error, Result};