diff options
Diffstat (limited to 'fedi/live_federation/utils.rs')
-rw-r--r-- | fedi/live_federation/utils.rs | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/fedi/live_federation/utils.rs b/fedi/live_federation/utils.rs new file mode 100644 index 0000000..0b2b098 --- /dev/null +++ b/fedi/live_federation/utils.rs | |||
@@ -0,0 +1,13 @@ | |||
1 | use rand::{distributions::Alphanumeric, thread_rng, Rng}; | ||
2 | use url::{ParseError, Url}; | ||
3 | |||
4 | /// Just generate random url as object id. In a real project, you probably want to use | ||
5 | /// an url which contains the database id for easy retrieval (or store the random id in db). | ||
6 | pub fn generate_object_id(domain: &str) -> Result<Url, ParseError> { | ||
7 | let id: String = thread_rng() | ||
8 | .sample_iter(&Alphanumeric) | ||
9 | .take(7) | ||
10 | .map(char::from) | ||
11 | .collect(); | ||
12 | Url::parse(&format!("https://{}/objects/{}", domain, id)) | ||
13 | } | ||