Crate rsmgp_sys[−][src]
Expand description
A library to simplify implementation of Memgraph Query Modules.
Example
use c_str_macro::c_str; // All possible rsmgp modules (probably not all will be required). use rsmgp_sys::edge::*; use rsmgp_sys::list::*; use rsmgp_sys::map::*; use rsmgp_sys::memgraph::*; use rsmgp_sys::mgp::*; use rsmgp_sys::path::*; use rsmgp_sys::property::*; use rsmgp_sys::result::*; use rsmgp_sys::rsmgp::*; use rsmgp_sys::value::*; use rsmgp_sys::vertex::*; use rsmgp_sys::{close_module, define_procedure, define_type, init_module}; // The following are required because of used macros. use std::ffi::CString; use std::os::raw::c_int; use std::panic; init_module!(|memgraph: &Memgraph| -> MgpResult<()> { memgraph.add_read_procedure( basic, // Has to be the same as specified in the `define_procedure!`. c_str!("basic"), // Name under which Memgraph will register the procedure. &[define_type!("input_string", Type::String)], // Required arguments. &[], // Optional arguments. &[define_type!("output_string", Type::String)], // Return fields. )?; Ok(()) }); define_procedure!(basic, |memgraph: &Memgraph| -> MgpResult<()> { let result = memgraph.result_record()?; let args = memgraph.args()?; let output_string = args.value_at(0)?; result.insert_mgp_value( c_str!("output_string"), &output_string.to_mgp_value(&memgraph)?, )?; Ok(()) }); close_module!(|| -> MgpResult<()> { Ok(()) });
Modules
edge | All edge (relationship) related. |
list | All related to the list datatype. |
map | All related to the map (dictionary) datatype. |
memgraph | Abstraction to interact with Memgraph. |
mgp | Auto-generated bindings (don’t use directly, except top-level pointer data types). |
path | All related to a graph path. |
property | All related to the property graph property (data key-value pair). |
result | Simplifies returning results to Memgraph and then to the client. |
rsmgp | Macro definitions and top level data structures. |
value | All related to the value (container for any data type). |
vertex | All vertex (node) related. |
Macros
close_module | Closes Memgraph query module. |
define_deprecated_type | Defines a deprecated type. |
define_optional_type | Defines an optional type. |
define_procedure | Defines a new procedure callable by Memgraph engine. |
define_type | Defines a regular type. |
init_module | Initializes Memgraph query module. |