pub struct ResolverBuilder { /* private fields */ }Implementations§
Source§impl ResolverBuilder
impl ResolverBuilder
Sourcepub fn new() -> Self
pub fn new() -> Self
Examples found in repository?
examples/resolver.rs (line 116)
115fn main() {
116 let mut builder = ResolverBuilder::new();
117
118 for module in YAMLS.split("---") {
119 let module: serde_yml::Mapping = serde_yml::from_str(module).unwrap();
120 let name = &module["name"].as_str().unwrap();
121
122 if let Some(protocols) = &module["handles"]["url_protocols"].as_sequence() {
123 for protocol in protocols.iter() {
124 builder
125 .insert_protocol(name, protocol.as_str().unwrap())
126 .unwrap();
127 }
128 }
129
130 if let Some(prefixes) = &module["handles"]["url_prefixes"].as_sequence() {
131 for prefix in prefixes.iter() {
132 builder
133 .insert_prefix(name, prefix.as_str().unwrap())
134 .unwrap()
135 }
136 }
137
138 if let Some(patterns) = &module["handles"]["url_patterns"].as_sequence() {
139 for pattern in patterns.iter() {
140 builder
141 .insert_pattern(name, pattern.as_str().unwrap())
142 .unwrap()
143 }
144 }
145 }
146
147 let resolver = builder.build().unwrap();
148
149 let mut stdout = std::io::stdout().lock();
150 let mut lines = std::io::stdin().lines();
151 loop {
152 stdout.write_all(b"query > ").unwrap();
153 stdout.flush().unwrap();
154
155 let Some(Ok(query)) = lines.next() else {
156 break;
157 };
158 let answers = resolver.resolve(&query).unwrap();
159 println!("answers:");
160 for answer in answers {
161 println!(" - {}", answer.name);
162 }
163 }
164}Sourcepub fn build(self) -> Result<Resolver, Box<dyn Error>>
pub fn build(self) -> Result<Resolver, Box<dyn Error>>
Examples found in repository?
examples/resolver.rs (line 147)
115fn main() {
116 let mut builder = ResolverBuilder::new();
117
118 for module in YAMLS.split("---") {
119 let module: serde_yml::Mapping = serde_yml::from_str(module).unwrap();
120 let name = &module["name"].as_str().unwrap();
121
122 if let Some(protocols) = &module["handles"]["url_protocols"].as_sequence() {
123 for protocol in protocols.iter() {
124 builder
125 .insert_protocol(name, protocol.as_str().unwrap())
126 .unwrap();
127 }
128 }
129
130 if let Some(prefixes) = &module["handles"]["url_prefixes"].as_sequence() {
131 for prefix in prefixes.iter() {
132 builder
133 .insert_prefix(name, prefix.as_str().unwrap())
134 .unwrap()
135 }
136 }
137
138 if let Some(patterns) = &module["handles"]["url_patterns"].as_sequence() {
139 for pattern in patterns.iter() {
140 builder
141 .insert_pattern(name, pattern.as_str().unwrap())
142 .unwrap()
143 }
144 }
145 }
146
147 let resolver = builder.build().unwrap();
148
149 let mut stdout = std::io::stdout().lock();
150 let mut lines = std::io::stdin().lines();
151 loop {
152 stdout.write_all(b"query > ").unwrap();
153 stdout.flush().unwrap();
154
155 let Some(Ok(query)) = lines.next() else {
156 break;
157 };
158 let answers = resolver.resolve(&query).unwrap();
159 println!("answers:");
160 for answer in answers {
161 println!(" - {}", answer.name);
162 }
163 }
164}Sourcepub fn insert_protocol(
&mut self,
module: &str,
protocol: &str,
) -> Result<(), Box<dyn Error>>
pub fn insert_protocol( &mut self, module: &str, protocol: &str, ) -> Result<(), Box<dyn Error>>
Examples found in repository?
examples/resolver.rs (line 125)
115fn main() {
116 let mut builder = ResolverBuilder::new();
117
118 for module in YAMLS.split("---") {
119 let module: serde_yml::Mapping = serde_yml::from_str(module).unwrap();
120 let name = &module["name"].as_str().unwrap();
121
122 if let Some(protocols) = &module["handles"]["url_protocols"].as_sequence() {
123 for protocol in protocols.iter() {
124 builder
125 .insert_protocol(name, protocol.as_str().unwrap())
126 .unwrap();
127 }
128 }
129
130 if let Some(prefixes) = &module["handles"]["url_prefixes"].as_sequence() {
131 for prefix in prefixes.iter() {
132 builder
133 .insert_prefix(name, prefix.as_str().unwrap())
134 .unwrap()
135 }
136 }
137
138 if let Some(patterns) = &module["handles"]["url_patterns"].as_sequence() {
139 for pattern in patterns.iter() {
140 builder
141 .insert_pattern(name, pattern.as_str().unwrap())
142 .unwrap()
143 }
144 }
145 }
146
147 let resolver = builder.build().unwrap();
148
149 let mut stdout = std::io::stdout().lock();
150 let mut lines = std::io::stdin().lines();
151 loop {
152 stdout.write_all(b"query > ").unwrap();
153 stdout.flush().unwrap();
154
155 let Some(Ok(query)) = lines.next() else {
156 break;
157 };
158 let answers = resolver.resolve(&query).unwrap();
159 println!("answers:");
160 for answer in answers {
161 println!(" - {}", answer.name);
162 }
163 }
164}Sourcepub fn insert_prefix(
&mut self,
module: &str,
prefix: &str,
) -> Result<(), Box<dyn Error>>
pub fn insert_prefix( &mut self, module: &str, prefix: &str, ) -> Result<(), Box<dyn Error>>
Examples found in repository?
examples/resolver.rs (line 133)
115fn main() {
116 let mut builder = ResolverBuilder::new();
117
118 for module in YAMLS.split("---") {
119 let module: serde_yml::Mapping = serde_yml::from_str(module).unwrap();
120 let name = &module["name"].as_str().unwrap();
121
122 if let Some(protocols) = &module["handles"]["url_protocols"].as_sequence() {
123 for protocol in protocols.iter() {
124 builder
125 .insert_protocol(name, protocol.as_str().unwrap())
126 .unwrap();
127 }
128 }
129
130 if let Some(prefixes) = &module["handles"]["url_prefixes"].as_sequence() {
131 for prefix in prefixes.iter() {
132 builder
133 .insert_prefix(name, prefix.as_str().unwrap())
134 .unwrap()
135 }
136 }
137
138 if let Some(patterns) = &module["handles"]["url_patterns"].as_sequence() {
139 for pattern in patterns.iter() {
140 builder
141 .insert_pattern(name, pattern.as_str().unwrap())
142 .unwrap()
143 }
144 }
145 }
146
147 let resolver = builder.build().unwrap();
148
149 let mut stdout = std::io::stdout().lock();
150 let mut lines = std::io::stdin().lines();
151 loop {
152 stdout.write_all(b"query > ").unwrap();
153 stdout.flush().unwrap();
154
155 let Some(Ok(query)) = lines.next() else {
156 break;
157 };
158 let answers = resolver.resolve(&query).unwrap();
159 println!("answers:");
160 for answer in answers {
161 println!(" - {}", answer.name);
162 }
163 }
164}Sourcepub fn insert_pattern(
&mut self,
module: &str,
pattern: &str,
) -> Result<(), Box<dyn Error>>
pub fn insert_pattern( &mut self, module: &str, pattern: &str, ) -> Result<(), Box<dyn Error>>
Examples found in repository?
examples/resolver.rs (line 141)
115fn main() {
116 let mut builder = ResolverBuilder::new();
117
118 for module in YAMLS.split("---") {
119 let module: serde_yml::Mapping = serde_yml::from_str(module).unwrap();
120 let name = &module["name"].as_str().unwrap();
121
122 if let Some(protocols) = &module["handles"]["url_protocols"].as_sequence() {
123 for protocol in protocols.iter() {
124 builder
125 .insert_protocol(name, protocol.as_str().unwrap())
126 .unwrap();
127 }
128 }
129
130 if let Some(prefixes) = &module["handles"]["url_prefixes"].as_sequence() {
131 for prefix in prefixes.iter() {
132 builder
133 .insert_prefix(name, prefix.as_str().unwrap())
134 .unwrap()
135 }
136 }
137
138 if let Some(patterns) = &module["handles"]["url_patterns"].as_sequence() {
139 for pattern in patterns.iter() {
140 builder
141 .insert_pattern(name, pattern.as_str().unwrap())
142 .unwrap()
143 }
144 }
145 }
146
147 let resolver = builder.build().unwrap();
148
149 let mut stdout = std::io::stdout().lock();
150 let mut lines = std::io::stdin().lines();
151 loop {
152 stdout.write_all(b"query > ").unwrap();
153 stdout.flush().unwrap();
154
155 let Some(Ok(query)) = lines.next() else {
156 break;
157 };
158 let answers = resolver.resolve(&query).unwrap();
159 println!("answers:");
160 for answer in answers {
161 println!(" - {}", answer.name);
162 }
163 }
164}Trait Implementations§
Source§impl Clone for ResolverBuilder
impl Clone for ResolverBuilder
Source§fn clone(&self) -> ResolverBuilder
fn clone(&self) -> ResolverBuilder
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ResolverBuilder
impl Debug for ResolverBuilder
Source§impl Default for ResolverBuilder
impl Default for ResolverBuilder
Source§fn default() -> ResolverBuilder
fn default() -> ResolverBuilder
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for ResolverBuilder
impl RefUnwindSafe for ResolverBuilder
impl !Send for ResolverBuilder
impl !Sync for ResolverBuilder
impl Unpin for ResolverBuilder
impl UnwindSafe for ResolverBuilder
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more