История изменений
Исправление
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)