From a31544b6e77d6868d950820ad31fc1fe8ed3666b Mon Sep 17 00:00:00 2001 From: Tamir Duberstein Date: Wed, 16 Aug 2023 12:20:32 -0400 Subject: [PATCH] maps: BloomFilter::insert takes &mut self This is consistent with all the other maps. --- aya/src/maps/bloom_filter.rs | 15 ++++++++++----- xtask/public-api/aya.txt | 6 ++++-- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/aya/src/maps/bloom_filter.rs b/aya/src/maps/bloom_filter.rs index 6fc24ff4..84bff986 100644 --- a/aya/src/maps/bloom_filter.rs +++ b/aya/src/maps/bloom_filter.rs @@ -1,5 +1,8 @@ //! A Bloom Filter. -use std::{borrow::Borrow, marker::PhantomData}; +use std::{ + borrow::{Borrow, BorrowMut}, + marker::PhantomData, +}; use crate::{ maps::{check_v_size, MapData, MapError}, @@ -59,10 +62,12 @@ impl, V: Pod> BloomFilter { .ok_or(MapError::ElementNotFound)?; Ok(()) } +} +impl, V: Pod> BloomFilter { /// Inserts a value into the map. - pub fn insert(&self, value: impl Borrow, flags: u64) -> Result<(), MapError> { - let fd = self.inner.borrow().fd; + pub fn insert(&mut self, value: impl Borrow, flags: u64) -> Result<(), MapError> { + let fd = self.inner.borrow_mut().fd; bpf_map_push_elem(fd, value.borrow(), flags).map_err(|(_, io_error)| SyscallError { call: "bpf_map_push_elem", io_error, @@ -173,7 +178,7 @@ mod tests { #[test] fn test_insert_syscall_error() { let mut map = new_map(new_obj_map()); - let bloom_filter = BloomFilter::<_, u32>::new(&mut map).unwrap(); + let mut bloom_filter = BloomFilter::<_, u32>::new(&mut map).unwrap(); override_syscall(|_| sys_error(EFAULT)); @@ -186,7 +191,7 @@ mod tests { #[test] fn test_insert_ok() { let mut map = new_map(new_obj_map()); - let bloom_filter = BloomFilter::<_, u32>::new(&mut map).unwrap(); + let mut bloom_filter = BloomFilter::<_, u32>::new(&mut map).unwrap(); override_syscall(|call| match call { Syscall::Bpf { diff --git a/xtask/public-api/aya.txt b/xtask/public-api/aya.txt index 28813796..ebf7699f 100644 --- a/xtask/public-api/aya.txt +++ b/xtask/public-api/aya.txt @@ -126,7 +126,8 @@ pub mod aya::maps::bloom_filter pub struct aya::maps::bloom_filter::BloomFilter impl, V: aya::Pod> aya::maps::bloom_filter::BloomFilter pub fn aya::maps::bloom_filter::BloomFilter::contains(&self, value: &V, flags: u64) -> core::result::Result<(), aya::maps::MapError> -pub fn aya::maps::bloom_filter::BloomFilter::insert(&self, value: impl core::borrow::Borrow, flags: u64) -> core::result::Result<(), aya::maps::MapError> +impl, V: aya::Pod> aya::maps::bloom_filter::BloomFilter +pub fn aya::maps::bloom_filter::BloomFilter::insert(&mut self, value: impl core::borrow::Borrow, flags: u64) -> core::result::Result<(), aya::maps::MapError> impl<'a, V: aya::Pod> core::convert::TryFrom<&'a aya::maps::Map> for aya::maps::bloom_filter::BloomFilter<&'a aya::maps::MapData, V> pub type aya::maps::bloom_filter::BloomFilter<&'a aya::maps::MapData, V>::Error = aya::maps::MapError pub fn aya::maps::bloom_filter::BloomFilter<&'a aya::maps::MapData, V>::try_from(map: &'a aya::maps::Map) -> core::result::Result, aya::maps::MapError> @@ -1101,7 +1102,8 @@ pub fn aya::maps::perf::AsyncPerfEventArray::from(t: T) -> T pub struct aya::maps::BloomFilter impl, V: aya::Pod> aya::maps::bloom_filter::BloomFilter pub fn aya::maps::bloom_filter::BloomFilter::contains(&self, value: &V, flags: u64) -> core::result::Result<(), aya::maps::MapError> -pub fn aya::maps::bloom_filter::BloomFilter::insert(&self, value: impl core::borrow::Borrow, flags: u64) -> core::result::Result<(), aya::maps::MapError> +impl, V: aya::Pod> aya::maps::bloom_filter::BloomFilter +pub fn aya::maps::bloom_filter::BloomFilter::insert(&mut self, value: impl core::borrow::Borrow, flags: u64) -> core::result::Result<(), aya::maps::MapError> impl<'a, V: aya::Pod> core::convert::TryFrom<&'a aya::maps::Map> for aya::maps::bloom_filter::BloomFilter<&'a aya::maps::MapData, V> pub type aya::maps::bloom_filter::BloomFilter<&'a aya::maps::MapData, V>::Error = aya::maps::MapError pub fn aya::maps::bloom_filter::BloomFilter<&'a aya::maps::MapData, V>::try_from(map: &'a aya::maps::Map) -> core::result::Result, aya::maps::MapError>