pub fn source<'a, R>(r: R) -> Result<Source<'a, R>> where
    R: Read