radicle_core/lib.rs
1#![no_std]
2
3//! This a crate for defining core data type for the Radicle protocol, such as
4//! [`RepoId`].
5//!
6//! # Feature Flags
7//!
8//! The only default feature is `std`.
9//!
10//! ## `std`
11//!
12//! [`OsString`]: ::doc_std::ffi::OsString
13//!
14//! Provides implementation of [`TryFrom<OsString>`].
15//!
16//! Enabled by default, since it is expected that most dependents will use the
17//! standard library.
18//!
19//! ## `git2`
20//!
21//! [`git2::Oid`]: ::git2::Oid
22//!
23//! Provides conversion from a [`git2::Oid`] to a [`RepoId`].
24//!
25//! ## `gix`
26//!
27//! [`ObjectId`]: ::gix_hash::ObjectId
28//!
29//! Provides conversion from a [`ObjectId`] to a [`RepoId`].
30//!
31//! ## `radicle-git-ref-format`
32//!
33//! Provides conversions from data types defined in `radicle-core` into valid
34//! reference components and/or strings.
35//!
36//! ## `serde`
37//!
38//! [`Serialize`]: ::serde::ser::Serialize
39//! [`Deserialize`]: ::serde::de::Deserialize
40//!
41//! Provides implementations of [`Serialize`] and [`Deserialize`].
42//!
43//! ## `schemars`
44//!
45//! [`JsonSchema`]: ::schemars::JsonSchema
46//!
47//! Provides implementations of [`JsonSchema`].
48//!
49//! ## `proptest`
50//!
51//! [`proptest::Strategy`]: ::proptest::strategy::Strategy
52//!
53//! Provides functions for generating different types of [`proptest::Strategy`].
54//!
55//! ## `qcheck`
56//!
57//! [`qcheck::Arbitrary`]: ::qcheck::Arbitrary
58//!
59//! Provides implementations of [`qcheck::Arbitrary`].
60//!
61//! ## `sqlite`
62//!
63//! [`sqlite::BindableWithIndex`]: ::sqlite::BindableWithIndex
64//! [`sqlite::Value`]: ::sqlite::Value
65//!
66//! Provides implementations of [`sqlite::BindableWithIndex`] and `TryFrom`
67//! implementations from the [`sqlite::Value`] type to the domain type.
68
69#[cfg(doc)]
70extern crate std as doc_std;
71
72extern crate alloc;
73
74pub mod node;
75pub use node::NodeId;
76
77pub mod repo;
78pub use repo::RepoId;