1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
use crate::{Alpm, AlpmListMut, IntoRawAlpmList, Result};

use alpm_sys_ll::*;

use std::ptr;

impl Alpm {
    pub fn fetch_pkgurl<'a, L: IntoRawAlpmList<'a, String>>(
        &'a self,
        urls: L,
    ) -> Result<AlpmListMut<'a, String>> {
        let mut out = ptr::null_mut();
        let list = unsafe { urls.into_raw_alpm_list() };
        let ret = unsafe { self.lib.alpm_fetch_pkgurl(self.as_ptr(), list.list(), &mut out) };
        self.check_ret(ret)?;
        let fetched = unsafe { AlpmListMut::from_parts(self, out) };
        Ok(fetched)
    }
}