amssa 0.2.0

"Aritz's modified string search algorithms"
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use borsh::{BorshDeserialize, BorshSerialize};

use crate::phonemes::{Phonehash, PhonehashRepr};

impl<T: BorshDeserialize + PhonehashRepr> BorshDeserialize for Phonehash<T> {
	fn deserialize_reader<R: borsh::io::Read>(reader: &mut R) -> borsh::io::Result<Self> {
		let repr: T = T::deserialize_reader(reader)?;
		if repr != T::default() && !repr.is_finalized() {
			return Err(borsh::io::Error::other("Phonehash is neither blank nor finalized"));
		}
		Ok(Self(repr))
	}
}
impl<T: BorshSerialize + PhonehashRepr> BorshSerialize for Phonehash<T> {
	fn serialize<W: borsh::io::Write>(&self, writer: &mut W) -> borsh::io::Result<()> {
		self.0.serialize(writer)
	}
}