From 62fe7af7699d25bcba974db989ab5aed06dc2ac9 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sun, 11 Oct 2020 19:34:25 +0100 Subject: [PATCH] Provide check_str Signed-off-by: Ian Jackson --- zcoord/zcoord.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/zcoord/zcoord.rs b/zcoord/zcoord.rs index 67209bb7..65679605 100644 --- a/zcoord/zcoord.rs +++ b/zcoord/zcoord.rs @@ -453,7 +453,7 @@ impl Default for ZCoord { impl ZCoord { #[throws(as Option)] - pub fn from_str(s: &str) -> Self { + pub fn check_str(s: &str) { let s = s.as_bytes(); let nomlen = s.len() + 1; if nomlen % TEXT_PER_LIMB !=0 { None? } @@ -466,6 +466,12 @@ impl ZCoord { match lt[DIGITS_PER_LIMB..] { [] | [b'_'] => (), _ => None? }; } if &s[s.len() - DIGITS_PER_LIMB.. ] == b"0000000000" { None? } + } + + #[throws(as Option)] + pub fn from_str(s: &str) -> Self { + ZCoord::check_str(s)?; + let s = s.as_bytes(); ZCoord::alloc_copy(s).ok()? } } -- 2.30.2