It looks like its O(expand underlying array and then memcpy) so most likely O(n) where n is source

    #[inline]
    pub fn push_bytes(dst: &mut ~[u8], src: &[u8]) {
        let old_len = dst.len();
        dst.reserve_additional(src.len());
        unsafe {
            ptr::copy_memory(dst.as_mut_ptr().offset(old_len as int), src.as_ptr(), src.len());
            dst.set_len(old_len + src.len());
        }
    }