mirror of
https://github.com/LemmyNet/activitypub-federation-rust.git
synced 2024-06-10 09:19:34 +00:00
Fix regex error when actix-web feature not enabled
If the crate is built with only the axum feature, compiling the
webfinger account regex will fail with an error "Unicode-aware case
insensitivity matching is not available..." because of the missing
unicode-case feature. This doesn't happen if actix is installed because
it pulls in the regex crate with all features (via [actix-router][0]).
The failure can be demonstrated by reverting this commit's change to
Cargo.toml and running:
cargo test --no-default-features --features=axum --doc extract_webfinger_name
Resolve this by adding the unicode-case feature to the regex dependency.
[0]: 0e8ed50e3a/actix-router/Cargo.toml (L25)
This commit is contained in:
parent
aedfe74077
commit
30dcf8f41b
|
@ -38,7 +38,7 @@ bytes = "1.4.0"
|
|||
futures-core = { version = "0.3.28", default-features = false }
|
||||
pin-project-lite = "0.2.9"
|
||||
activitystreams-kinds = "0.3.0"
|
||||
regex = { version = "1.8.4", default-features = false, features = ["std"] }
|
||||
regex = { version = "1.8.4", default-features = false, features = ["std", "unicode-case"] }
|
||||
tokio = { version = "1.21.2", features = [
|
||||
"sync",
|
||||
"rt",
|
||||
|
|
|
@ -66,6 +66,25 @@ where
|
|||
/// request. For a parameter of the form `acct:gargron@mastodon.social` it returns `gargron`.
|
||||
///
|
||||
/// Returns an error if query doesn't match local domain.
|
||||
///
|
||||
///```
|
||||
/// # use activitypub_federation::config::FederationConfig;
|
||||
/// # use activitypub_federation::traits::tests::DbConnection;
|
||||
/// # use activitypub_federation::fetch::webfinger::extract_webfinger_name;
|
||||
/// # tokio::runtime::Runtime::new().unwrap().block_on(async {
|
||||
/// # let db_connection = DbConnection;
|
||||
/// let config = FederationConfig::builder()
|
||||
/// .domain("example.com")
|
||||
/// .app_data(db_connection)
|
||||
/// .build()
|
||||
/// .await
|
||||
/// .unwrap();
|
||||
/// let data = config.to_request_data();
|
||||
/// let res = extract_webfinger_name("acct:test_user@example.com", &data).unwrap();
|
||||
/// assert_eq!(res, "test_user");
|
||||
/// # Ok::<(), anyhow::Error>(())
|
||||
/// }).unwrap();
|
||||
///```
|
||||
pub fn extract_webfinger_name<T>(query: &str, data: &Data<T>) -> Result<String, Error>
|
||||
where
|
||||
T: Clone,
|
||||
|
|
Loading…
Reference in a new issue