diff --git a/libp2panda/src/topic.rs b/libp2panda/src/topic.rs index e6eb4b0..491781a 100644 --- a/libp2panda/src/topic.rs +++ b/libp2panda/src/topic.rs @@ -217,6 +217,21 @@ pub unsafe extern "C" fn p2panda_topic_id_new() -> *mut topic::TopicId { topic::TopicId::new().into_glib_ptr() } +#[unsafe(no_mangle)] +pub unsafe extern "C" fn p2panda_topic_id_new_from_data( + data: *const [u8; 32], +) -> *mut topic::TopicId { + unsafe { topic::TopicId::from_data(*data).into_glib_ptr() } +} + +#[unsafe(no_mangle)] +pub unsafe extern "C" fn p2panda_topic_id_get_data(topic_id: *mut topic::TopicId) -> *const [u8; 32] { + unsafe { + let topic_id = topic::TopicId::from_glib_none(topic_id); + topic_id.into_glib_ptr() as *const [u8; 32] + } +} + #[unsafe(no_mangle)] pub unsafe extern "C" fn p2panda_topic_id_copy( topic_id: *mut topic::TopicId,