make rule_cache noncopyable