rshyper_core/
lib.rs

1/*
2    appellation: rshyper-core <library>
3    authors: @FL03
4*/
5//! This crate provides the core functionality for the rshyper library.
6
7#![cfg_attr(not(feature = "std"), no_std)]
8
9#[cfg(feature = "alloc")]
10extern crate alloc;
11
12#[macro_use]
13pub(crate) mod macros {
14    #[macro_use]
15    pub mod seal;
16}
17
18#[doc(inline)]
19pub use self::{
20    edge::Edge,
21    error::{Error, Result},
22    id::{EdgeId, Index, VertexId},
23    node::Node,
24    traits::prelude::*,
25    types::prelude::*,
26};
27
28pub mod edge;
29pub mod error;
30/// this module defines the [`Index`] type and its associated types for representing indices in
31/// a hypergraph.
32pub mod id;
33pub mod node;
34/// this module contains various traits used throughout to establish common interfaces and
35/// behaviors
36pub mod traits {
37    #[doc(inline)]
38    pub use self::prelude::*;
39
40    pub mod container;
41    pub mod convert;
42    pub mod hyper_graph;
43    pub mod nodes;
44    pub mod tags;
45
46    pub(crate) mod prelude {
47        #[doc(inline)]
48        pub use super::container::*;
49        #[doc(inline)]
50        pub use super::convert::*;
51        #[doc(inline)]
52        pub use super::hyper_graph::*;
53        #[doc(inline)]
54        pub use super::nodes::*;
55        #[doc(inline)]
56        pub use super::tags::*;
57    }
58}
59pub mod types {
60    //! this module contains various types
61    #[doc(inline)]
62    pub use self::prelude::*;
63
64    pub mod graph_kind;
65    pub mod weight;
66
67    pub(crate) mod prelude {
68        #[doc(inline)]
69        pub use super::graph_kind::*;
70        #[doc(inline)]
71        pub use super::weight::*;
72    }
73}
74
75pub mod prelude {
76    #[doc(no_inline)]
77    pub use crate::error::*;
78
79    #[doc(no_inline)]
80    pub use crate::edge::prelude::*;
81    #[doc(no_inline)]
82    pub use crate::id::prelude::*;
83    #[doc(no_inline)]
84    pub use crate::node::prelude::*;
85    #[doc(no_inline)]
86    pub use crate::traits::prelude::*;
87    #[doc(no_inline)]
88    pub use crate::types::prelude::*;
89}