zawgl-core

Crates.iozawgl-core
lib.rszawgl-core
version
sourcesrc
created_at2023-07-09 10:09:12.3826
updated_at2025-02-10 06:25:58.799674
descriptionZawgl Graph Core Library
homepage
repository
max_upload_size
id911940
Cargo.toml error:TOML parse error at line 18, column 1 | 18 | autolib = false | ^^^^^^^ unknown field `autolib`, expected one of `name`, `version`, `edition`, `authors`, `description`, `readme`, `license`, `repository`, `homepage`, `documentation`, `build`, `resolver`, `links`, `default-run`, `default_dash_run`, `rust-version`, `rust_dash_version`, `rust_version`, `license-file`, `license_dash_file`, `license_file`, `licenseFile`, `license_capital_file`, `forced-target`, `forced_dash_target`, `autobins`, `autotests`, `autoexamples`, `autobenches`, `publish`, `metadata`, `keywords`, `categories`, `exclude`, `include`
size0
Alexandre RICCIARDI (alexandre-ricciardi)

documentation

README

zawgl-core

Zawgl graph core library

Usage

Sample usage:

use log::LevelFilter;
use zawgl_core::{graph_engine::GraphEngine, model::{init::InitContext, Node, Property, PropertyGraph, Relationship}, repository::graph_repository::GraphRepository, test_utils::build_dir_path_and_rm_old};
use simple_logger::SimpleLogger;

fn main() {
    SimpleLogger::new().with_level(LevelFilter::Info).init().unwrap();
    let db_dir = build_dir_path_and_rm_old("simple_test").expect("error");
    let ctx: InitContext = InitContext::new(&db_dir).expect("can't create database context");
    let mut gr = GraphRepository::new(ctx);
    let mut alice = Node::new();
    alice.set_labels(vec!["Person".to_string()]);
    alice.set_properties(vec![Property::new_integer("age", 42)]);
    let alice_with_id = gr.create_node(&alice).unwrap();
    let mut bob = Node::new();
    bob.set_labels(vec!["Person".to_string()]);
    bob.set_properties(vec![Property::new_integer("age", 36)]);
    let bob_with_id = gr.create_node(&bob).unwrap();
    let mut is_friend_rel = Relationship::new();
    is_friend_rel.set_labels(vec!["IS_FRIEND_OF".to_string()]);
    gr.create_relationship(&is_friend_rel, alice_with_id.get_id().unwrap(), bob_with_id.get_id().unwrap());
    gr.sync();


    let mut pattern = PropertyGraph::new();
    let source_index = pattern.add_node(Node::new());
    let target_index = pattern.add_node(Node::new());
    pattern.add_relationship(Relationship::new(), source_index, target_index);

    let mut ge = GraphEngine::from_repository(gr);
    let results = ge.match_pattern(&pattern);

    if let Some(res) = results {
        assert_eq!(res.len(), 1);
    } else {
        assert!(false);
    }
}
Commit count: 0

cargo fmt