mirror of
				https://github.com/LadybirdBrowser/ladybird.git
				synced 2025-10-31 05:10:57 +00:00 
			
		
		
		
	 269810b954
			
		
	
	
		269810b954
		
	
	
	
	
		
			
			This means deviating slightly from the spec in order to construct a fully-initialized Declaration instead of creating an empty one and then poking at its internals. DeclarationOrAtRule should probably use a Variant, but for now, making its Declaration member optional is quick and easy.
		
			
				
	
	
		
			42 lines
		
	
	
	
		
			934 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
	
		
			934 B
		
	
	
	
		
			C++
		
	
	
	
	
	
| /*
 | |
|  * Copyright (c) 2020-2021, the SerenityOS developers.
 | |
|  * Copyright (c) 2021-2022, Sam Atkins <atkinssj@serenityos.org>
 | |
|  *
 | |
|  * SPDX-License-Identifier: BSD-2-Clause
 | |
|  */
 | |
| 
 | |
| #include <LibWeb/CSS/Parser/DeclarationOrAtRule.h>
 | |
| 
 | |
| namespace Web::CSS::Parser {
 | |
| 
 | |
| DeclarationOrAtRule::DeclarationOrAtRule(RefPtr<StyleRule> at)
 | |
|     : m_type(DeclarationType::At)
 | |
|     , m_at(move(at))
 | |
| {
 | |
| }
 | |
| 
 | |
| DeclarationOrAtRule::DeclarationOrAtRule(Declaration declaration)
 | |
|     : m_type(DeclarationType::Declaration)
 | |
|     , m_declaration(move(declaration))
 | |
| {
 | |
| }
 | |
| 
 | |
| DeclarationOrAtRule::~DeclarationOrAtRule() = default;
 | |
| 
 | |
| String DeclarationOrAtRule::to_string() const
 | |
| {
 | |
|     StringBuilder builder;
 | |
|     switch (m_type) {
 | |
|     default:
 | |
|     case DeclarationType::At:
 | |
|         builder.append(m_at->to_string());
 | |
|         break;
 | |
|     case DeclarationType::Declaration:
 | |
|         builder.append(m_declaration->to_string());
 | |
|         break;
 | |
|     }
 | |
| 
 | |
|     return builder.to_string();
 | |
| }
 | |
| 
 | |
| }
 |