12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- // #[macro_export]
- // macro_rules! impl_save_func {
- // ($func_name:ident, $target:ident, $table_name:expr, $conn:ident) => {
- // fn $func_name(object: $target) -> Result<(), FlowyError> {
- // let _ = diesel::insert_into($table_name)
- // .values($target)
- // .execute(&*($conn))?;
- // }
- // };
- // }
- #[macro_export]
- macro_rules! impl_def_and_def_mut {
- ($target:ident, $item: ident) => {
- impl std::ops::Deref for $target {
- type Target = Vec<$item>;
- fn deref(&self) -> &Self::Target {
- &self.items
- }
- }
- impl std::ops::DerefMut for $target {
- fn deref_mut(&mut self) -> &mut Self::Target {
- &mut self.items
- }
- }
- impl $target {
- #[allow(dead_code)]
- pub fn into_inner(&mut self) -> Vec<$item> {
- ::std::mem::take(&mut self.items)
- }
- #[allow(dead_code)]
- pub fn push(&mut self, item: $item) {
- if self.items.contains(&item) {
- log::error!("add duplicate item: {:?}", item);
- return;
- }
- self.items.push(item);
- }
- pub fn first_or_crash(&self) -> &$item {
- self.items.first().unwrap()
- }
- }
- };
- }
|