mirror of
https://seed.radicle.dev/rad:z39mP9rQAaGmERfUMPULfPUi473tY.git
synced 2026-11-04 02:40:59 +08:00
41 lines
988 B
Rust
41 lines
988 B
Rust
use std::str::FromStr;
|
|
|
|
use anyhow::Result;
|
|
|
|
use radicle::cob::Label;
|
|
use radicle::prelude::Did;
|
|
|
|
pub mod inbox;
|
|
pub mod issue;
|
|
pub mod patch;
|
|
|
|
#[allow(dead_code)]
|
|
pub fn parse_labels(input: String) -> Result<Vec<Label>> {
|
|
let mut labels = vec![];
|
|
if !input.is_empty() {
|
|
for name in input.split(',') {
|
|
match Label::new(name.trim()) {
|
|
Ok(label) => labels.push(label),
|
|
Err(err) => return Err(anyhow::anyhow!(err).context("Can't parse labels.")),
|
|
}
|
|
}
|
|
}
|
|
|
|
Ok(labels)
|
|
}
|
|
|
|
#[allow(dead_code)]
|
|
pub fn parse_assignees(input: String) -> Result<Vec<Did>> {
|
|
let mut assignees = vec![];
|
|
if !input.is_empty() {
|
|
for did in input.split(',') {
|
|
match Did::from_str(&format!("did:key:{}", did)) {
|
|
Ok(did) => assignees.push(did),
|
|
Err(err) => return Err(anyhow::anyhow!(err).context("Can't parse assignees.")),
|
|
}
|
|
}
|
|
}
|
|
|
|
Ok(assignees)
|
|
}
|