mirror of
				https://github.com/LadybirdBrowser/ladybird.git
				synced 2025-11-03 23:00:58 +00:00 
			
		
		
		
	This was a workaround to be able to build on case-insensitive file systems where it might get confused about <string.h> vs <String.h>. Let's just not support building that way, so String.h can have an objectively nicer name. :^)
		
			
				
	
	
		
			29 lines
		
	
	
	
		
			548 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
	
		
			548 B
		
	
	
	
		
			C++
		
	
	
	
	
	
#pragma once
 | 
						|
 | 
						|
#include <AK/String.h>
 | 
						|
#include <AK/Vector.h>
 | 
						|
#include <LibHTML/CSS/Specificity.h>
 | 
						|
 | 
						|
class Selector {
 | 
						|
public:
 | 
						|
    struct Component {
 | 
						|
        enum class Type {
 | 
						|
            Invalid,
 | 
						|
            TagName,
 | 
						|
            Id,
 | 
						|
            Class
 | 
						|
        };
 | 
						|
        Type type { Type::Invalid };
 | 
						|
        String value;
 | 
						|
    };
 | 
						|
 | 
						|
    explicit Selector(Vector<Component>&&);
 | 
						|
    ~Selector();
 | 
						|
 | 
						|
    const Vector<Component>& components() const { return m_components; }
 | 
						|
 | 
						|
    Specificity specificity() const;
 | 
						|
 | 
						|
private:
 | 
						|
    Vector<Component> m_components;
 | 
						|
};
 |