From 381e05e7970adb24c3d9b98b0ae71e4a2e1c114a Mon Sep 17 00:00:00 2001 From: Ali MJ Al-Nasrawy Date: Sun, 27 Jun 2021 16:04:34 +0300 Subject: [PATCH] `ResourceDef::insert_prefix()` --- actix-router/src/resource.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/actix-router/src/resource.rs b/actix-router/src/resource.rs index fed20c48..4cdee197 100644 --- a/actix-router/src/resource.rs +++ b/actix-router/src/resource.rs @@ -132,6 +132,19 @@ impl ResourceDef { &self.pattern } + pub fn insert_prefix(&mut self, prefix: &str) { + let is_prefix = match &self.tp { + PatternType::Static(_) => false, + PatternType::Prefix(_) => true, + PatternType::Dynamic(re, ..) => re.as_str().ends_with('$'), + PatternType::DynamicSet(..) => panic!(), + }; + let new_pattern = format!("{}{}", insert_slash(prefix), self.pattern()); + + // TODO Docs; Tests; dynamicset suppot!!!!! + *self = ResourceDef::from_single_pattern(&new_pattern, is_prefix); + } + /// Check if path matches this pattern. #[inline] pub fn is_match(&self, path: &str) -> bool {