mirror of
https://github.com/starovoid/rxing.git
synced 2026-07-27 21:02:35 +00:00
add optional extra parsers
This commit is contained in:
@@ -37,7 +37,7 @@ use super::{
|
|||||||
BookmarkDoCoMoResultParser, EmailAddressResultParser, EmailDoCoMoResultParser, GeoResultParser,
|
BookmarkDoCoMoResultParser, EmailAddressResultParser, EmailDoCoMoResultParser, GeoResultParser,
|
||||||
ISBNResultParser, ParsedClientResult, ParsedRXingResult, ProductResultParser,
|
ISBNResultParser, ParsedClientResult, ParsedRXingResult, ProductResultParser,
|
||||||
SMSMMSResultParser, SMTPResultParser, TelResultParser, TextParsedRXingResult, URIResultParser,
|
SMSMMSResultParser, SMTPResultParser, TelResultParser, TextParsedRXingResult, URIResultParser,
|
||||||
URLTOResultParser, VINResultParser, WifiResultParser, AddressBookDoCoMoResultParser, AddressBookAUResultParser, VCardResultParser, BizcardResultParser,
|
URLTOResultParser, VINResultParser, WifiResultParser, AddressBookDoCoMoResultParser, AddressBookAUResultParser, VCardResultParser, BizcardResultParser, VEventResultParser,
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -86,7 +86,7 @@ use super::{
|
|||||||
// fn parse(&self, theRXingResult: &RXingResult) -> Option<ParsedClientResult>;
|
// fn parse(&self, theRXingResult: &RXingResult) -> Option<ParsedClientResult>;
|
||||||
// }
|
// }
|
||||||
|
|
||||||
type ParserFunction = dyn Fn(&RXingResult) -> Option<ParsedClientResult>;
|
pub type ParserFunction = dyn Fn(&RXingResult) -> Option<ParsedClientResult>;
|
||||||
|
|
||||||
const DIGITS: &'static str = "\\d+"; //= Pattern.compile("\\d+");
|
const DIGITS: &'static str = "\\d+"; //= Pattern.compile("\\d+");
|
||||||
const AMPERSAND: &'static str = "&"; // private static final Pattern AMPERSAND = Pattern.compile("&");
|
const AMPERSAND: &'static str = "&"; // private static final Pattern AMPERSAND = Pattern.compile("&");
|
||||||
@@ -103,15 +103,25 @@ pub fn getMassagedText(result: &RXingResult) -> String {
|
|||||||
return text;
|
return text;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn parse_result_with_parsers(theRXingResult: &RXingResult, parsers: &[&ParserFunction]) -> ParsedClientResult {
|
||||||
|
for parser in parsers {
|
||||||
|
let result = parser(theRXingResult);
|
||||||
|
if result.is_some() {
|
||||||
|
return result.unwrap();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
parseRXingResult(theRXingResult)
|
||||||
|
}
|
||||||
|
|
||||||
pub fn parseRXingResult(theRXingResult: &RXingResult) -> ParsedClientResult {
|
pub fn parseRXingResult(theRXingResult: &RXingResult) -> ParsedClientResult {
|
||||||
let PARSERS: [&ParserFunction; 18] = [
|
let PARSERS: [&ParserFunction; 19] = [
|
||||||
&BookmarkDoCoMoResultParser::parse,
|
&BookmarkDoCoMoResultParser::parse,
|
||||||
&AddressBookDoCoMoResultParser::parse,
|
&AddressBookDoCoMoResultParser::parse,
|
||||||
&EmailDoCoMoResultParser::parse,
|
&EmailDoCoMoResultParser::parse,
|
||||||
&AddressBookAUResultParser::parse,
|
&AddressBookAUResultParser::parse,
|
||||||
&VCardResultParser::parse,
|
&VCardResultParser::parse,
|
||||||
&BizcardResultParser::parse,
|
&BizcardResultParser::parse,
|
||||||
// new VEventRXingResultParser(),
|
&VEventResultParser::parse,
|
||||||
&EmailAddressResultParser::parse,
|
&EmailAddressResultParser::parse,
|
||||||
&SMTPResultParser::parse,
|
&SMTPResultParser::parse,
|
||||||
&TelResultParser::parse,
|
&TelResultParser::parse,
|
||||||
|
|||||||
Reference in New Issue
Block a user