Implement FromStr.
This commit is contained in:
parent
cd560973ed
commit
2b944b57af
|
@ -1,6 +1,11 @@
|
|||
//! Parsing for `/~<group>`.
|
||||
|
||||
use {color_eyre::Result, scraper::Html};
|
||||
use std::str::FromStr;
|
||||
|
||||
use {
|
||||
color_eyre::{eyre::Error, Result},
|
||||
scraper::Html,
|
||||
};
|
||||
|
||||
use crate::{
|
||||
regexes::GROUP_SUBSCRIBERS_RE,
|
||||
|
@ -42,6 +47,15 @@ pub struct GroupWikiLink {
|
|||
pub url: String,
|
||||
}
|
||||
|
||||
impl FromStr for Group {
|
||||
type Err = Error;
|
||||
|
||||
fn from_str(s: &str) -> Result<Self, Self::Err> {
|
||||
let html = Html::parse_document(s);
|
||||
Self::from_html(&html)
|
||||
}
|
||||
}
|
||||
|
||||
impl Group {
|
||||
/// Parses a [`Group`] from a [`scraper::Html`] tree.
|
||||
pub fn from_html(html: &Html) -> Result<Self> {
|
||||
|
|
|
@ -1,6 +1,11 @@
|
|||
//! Parsing for [`/groups`](https://tildes.net/groups).
|
||||
|
||||
use {color_eyre::Result, scraper::Html};
|
||||
use std::str::FromStr;
|
||||
|
||||
use {
|
||||
color_eyre::{eyre::Error, Result},
|
||||
scraper::Html,
|
||||
};
|
||||
|
||||
use crate::{
|
||||
regexes::{DUPLICATE_WHITESPACE_RE, GROUP_LIST_ACTIVITY_RE},
|
||||
|
@ -32,6 +37,15 @@ pub struct GroupListSummary {
|
|||
pub topic_activity: Option<i32>,
|
||||
}
|
||||
|
||||
impl FromStr for GroupList {
|
||||
type Err = Error;
|
||||
|
||||
fn from_str(s: &str) -> Result<Self, Self::Err> {
|
||||
let html = Html::parse_document(s);
|
||||
Self::from_html(&html)
|
||||
}
|
||||
}
|
||||
|
||||
impl GroupList {
|
||||
/// Parses a [`GroupList`] from a [`scraper::Html`] tree.
|
||||
pub fn from_html(html: &Html) -> Result<Self> {
|
||||
|
|
Loading…
Reference in New Issue