LINUX.ORG.RU

История изменений

Исправление Legioner, (текущая версия) :

Синтаксис, кажется, есть дублирующий: struct S<T:Debug> vs struct S<T> where T:Debug.

Второй вариант для случаев, когда у типа много сложных ограничений и типов много. И скорее для функций, а не для структур. Сравни

pub fn check_read_write<T, R, W>(value: &T, bytes_hex: &[u8], read: R, write: W)
    where T: PartialEq + fmt::Debug,
          R: Fn(&mut &[u8]) -> s11n::Result<T>,
          W: Fn(&mut Vec<u8>, &T)

и

pub fn check_read_write<
    T: PartialEq + fmt::Debug,
    R: Fn(&mut &[u8]) -> s11n::Result<T>,
    W: Fn(&mut Vec<u8>, &T)
>(value: &T, bytes_hex: &[u8], read: R, write: W)

Исправление Legioner, :

Синтаксис, кажется, есть дублирующий: struct S<T:Debug> vs struct S<T> where T:Debug.

Второй вариант для случаев, когда у типа много сложных ограничений и типов много. И скорее для функций, а не для структур. Сравни

pub fn check_read_write<T, R, W>(value: &T, bytes_hex: &[u8], read: R, write: W)
    where T: PartialEq + fmt::Debug,
          R: Fn(&mut &[u8]) -> s11n::Result<T>,
          W: Fn(&mut Vec<u8>, &T)

и

pub fn check_read_write<T: PartialEq + fmt::Debug, R: Fn(&mut &[u8]) -> s11n::Result<T>, W: Fn(&mut Vec<u8>, &T)>(value: &T, bytes_hex: &[u8], read: R, write: W)

Исходная версия Legioner, :

Синтаксис, кажется, есть дублирующий: struct S<T:Debug> vs struct S<T> where T:Debug.

Второй вариант для случаев, когда у типа много сложных ограничений и типов много. И скорее для функций, а не для структур. Сравни

pub fn check_read_write<T, R, W>(value: &T, bytes_hex: &[u8], read: R, write: W)
    where T: PartialEq + fmt::Debug,
          R: Fn(&mut &[u8]) -> s11n::Result<T>,
          W: Fn(&mut Vec<u8>, &T)

и

pub fn check_read_write<T: PartialEq + fmt::Debug, R: Fn(&mut &[u8]) -> s11n::Result<T>, W: Fn(&mut Vec<u8>, &T)>(value: &T, bytes_hex: &[u8], read: R, write: W)