summary refs log tree commit diff
path: root/rust/src/lib.rs
diff options
context:
space:
mode:
authorEric Eastwood <erice@element.io>2022-09-20 18:04:30 -0500
committerEric Eastwood <erice@element.io>2022-09-20 18:04:30 -0500
commit05e511368bb65f08e700bba141a702595436e14d (patch)
tree98f408d69c51288e81bf3ba16c69c960e5e27794 /rust/src/lib.rs
parentRemove debug logs (diff)
parentMerge branch 'develop' into madlittlemods/11850-migrate-to-opentelemetry (diff)
downloadsynapse-05e511368bb65f08e700bba141a702595436e14d.tar.xz
Merge branch 'madlittlemods/11850-migrate-to-opentelemetry' into madlittlemods/13356-messages-investigation-scratch-v1
Conflicts:
	poetry.lock
	synapse/handlers/federation.py
Diffstat (limited to 'rust/src/lib.rs')
-rw-r--r--rust/src/lib.rs31
1 files changed, 31 insertions, 0 deletions
diff --git a/rust/src/lib.rs b/rust/src/lib.rs
new file mode 100644
index 0000000000..c7b60e58a7
--- /dev/null
+++ b/rust/src/lib.rs
@@ -0,0 +1,31 @@
+use pyo3::prelude::*;
+
+pub mod push;
+
+/// Returns the hash of all the rust source files at the time it was compiled.
+///
+/// Used by python to detect if the rust library is outdated.
+#[pyfunction]
+fn get_rust_file_digest() -> &'static str {
+    env!("SYNAPSE_RUST_DIGEST")
+}
+
+/// Formats the sum of two numbers as string.
+#[pyfunction]
+#[pyo3(text_signature = "(a, b, /)")]
+fn sum_as_string(a: usize, b: usize) -> PyResult<String> {
+    Ok((a + b).to_string())
+}
+
+/// The entry point for defining the Python module.
+#[pymodule]
+fn synapse_rust(py: Python<'_>, m: &PyModule) -> PyResult<()> {
+    pyo3_log::init();
+
+    m.add_function(wrap_pyfunction!(sum_as_string, m)?)?;
+    m.add_function(wrap_pyfunction!(get_rust_file_digest, m)?)?;
+
+    push::register_module(py, m)?;
+
+    Ok(())
+}