pub struct Graph {
pub total_nodes: usize,
/* private fields */
}Fields§
§total_nodes: usizeImplementations§
Source§impl Graph
impl Graph
Sourcepub fn new(file_name: &str) -> Result<Self, Box<dyn Error>>
pub fn new(file_name: &str) -> Result<Self, Box<dyn Error>>
read the graph from the file
§Arguments
file_name- the path of the file
§Return
Graph- the graph
the file format is: f feature_size 0 1 2 1 2 0 2 0 1 end
the first line is the feature size the following lines are the edges the last line is end or END
§Examples
ⓘ
use gcn_agg::graph::Graph;
use std::{fs::File, io::{Read,Write}};
let file_name="test_data/graph.txt";
// write the graph to the file
let data="f 3\n0 1 2\n1 2 0\n2 0 1\nend\n";
let mut f = File::create(file_name).expect("file not found");
f.write_all(data.as_bytes())
.expect("something went wrong writing the file");
// read the graph from the file
let graph = Graph::from("test_data/graph.txt");
assert_eq!(graph.get_feature_size(), 3);
assert_eq!(graph.get_csc()[0][0], 0);
assert_eq!(graph.get_csc()[0][1], 1);
assert_eq!(graph.get_csc()[0][2], 2);
assert_eq!(graph.get_csc()[1][0], 1);
assert_eq!(graph.get_csc()[1][1], 2);
assert_eq!(graph.get_csc()[1][2], 0);
assert_eq!(graph.get_csc()[2][0], 2);
assert_eq!(graph.get_csc()[2][1], 0);
assert_eq!(graph.get_csc()[2][2], 1);
// delete the file
std::fs::remove_file(file_name).expect("failed to delete the file");Source§impl Graph
impl Graph
pub fn get_feature_size(&self) -> usize
pub fn get_csc(&self) -> &Vec<BTreeSet<usize>>
pub fn get_csr(&self) -> &Option<Vec<BTreeSet<usize>>>
Sourcepub fn is_row_range_empty(
&self,
i: usize,
start: usize,
end: usize,
) -> Result<bool, Box<dyn Error>>
pub fn is_row_range_empty( &self, i: usize, start: usize, end: usize, ) -> Result<bool, Box<dyn Error>>
§Description
test if a row is empty from col start to col end, for index i
pub fn get_num_node(&self) -> usize
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Graph
impl RefUnwindSafe for Graph
impl Send for Graph
impl Sync for Graph
impl Unpin for Graph
impl UnwindSafe for Graph
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more