fn hook()

in src/plugin/plugin_memcache.rs [91:137]


    fn hook(
        &self, class_name: Option<&str>, function_name: &str,
    ) -> Option<(
        Box<crate::execute::BeforeExecuteHook>,
        Box<crate::execute::AfterExecuteHook>,
    )> {
        let lowercase_function_name = function_name.to_ascii_lowercase();
        let function_name = function_name.to_owned();

        match (class_name, &*lowercase_function_name) {
            (Some("Memcache" | "MemcachePool"), "connect" | "addserver" | "close") => {
                Some(self.hook_memcache_server(
                    class_name.map(ToOwned::to_owned),
                    function_name,
                    ApiStyle::OO,
                ))
            }
            (None, "memcache_add_server" | "memcache_close") => {
                Some(self.hook_memcache_server(None, function_name, ApiStyle::Procedural))
            }
            (Some("Memcache" | "MemcachePool"), f)
                if MEMCACHE_EMPTY_METHOD_MAPPING.contains_key(f) =>
            {
                Some(self.hook_memcache_empty_methods(
                    class_name.map(ToOwned::to_owned),
                    function_name,
                    ApiStyle::OO,
                ))
            }
            (None, f) if MEMCACHE_EMPTY_METHOD_MAPPING.contains_key(&f["memcache_".len()..]) => {
                Some(self.hook_memcache_empty_methods(None, function_name, ApiStyle::Procedural))
            }
            (Some("Memcache" | "MemcachePool"), f)
                if MEMCACHE_KEY_METHOD_MAPPING.contains_key(f) =>
            {
                Some(self.hook_memcache_key_methods(
                    class_name.map(ToOwned::to_owned),
                    function_name,
                    ApiStyle::OO,
                ))
            }
            (None, f) if MEMCACHE_KEY_METHOD_MAPPING.contains_key(&f["memcache_".len()..]) => {
                Some(self.hook_memcache_key_methods(None, function_name, ApiStyle::Procedural))
            }
            _ => None,
        }
    }