# GrammarRule
Namespace: LLama.Grammars
A single rule in a [Grammar](./llama.grammars.grammar.md)
```csharp
public sealed class GrammarRule : System.IEquatable`1[[LLama.Grammars.GrammarRule, LLamaSharp, Version=0.5.0.0, Culture=neutral, PublicKeyToken=null]]
```
Inheritance [Object](https://docs.microsoft.com/en-us/dotnet/api/system.object) → [GrammarRule](./llama.grammars.grammarrule.md)
Implements [IEquatable<GrammarRule>](https://docs.microsoft.com/en-us/dotnet/api/system.iequatable-1)
## Properties
### **Name**
Name of this rule
```csharp
public string Name { get; }
```
#### Property Value
[String](https://docs.microsoft.com/en-us/dotnet/api/system.string)
### **Elements**
The elements of this grammar rule
```csharp
public IReadOnlyList Elements { get; }
```
#### Property Value
[IReadOnlyList<LLamaGrammarElement>](https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.ireadonlylist-1)
## Constructors
### **GrammarRule(String, IReadOnlyList<LLamaGrammarElement>)**
Create a new GrammarRule containing the given elements
```csharp
public GrammarRule(string name, IReadOnlyList elements)
```
#### Parameters
`name` [String](https://docs.microsoft.com/en-us/dotnet/api/system.string)
`elements` [IReadOnlyList<LLamaGrammarElement>](https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.ireadonlylist-1)
#### Exceptions
[ArgumentException](https://docs.microsoft.com/en-us/dotnet/api/system.argumentexception)
## Methods
### **ToString()**
```csharp
public string ToString()
```
#### Returns
[String](https://docs.microsoft.com/en-us/dotnet/api/system.string)
### **GetHashCode()**
```csharp
public int GetHashCode()
```
#### Returns
[Int32](https://docs.microsoft.com/en-us/dotnet/api/system.int32)
### **Equals(Object)**
```csharp
public bool Equals(object obj)
```
#### Parameters
`obj` [Object](https://docs.microsoft.com/en-us/dotnet/api/system.object)
#### Returns
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/system.boolean)
### **Equals(GrammarRule)**
```csharp
public bool Equals(GrammarRule other)
```
#### Parameters
`other` [GrammarRule](./llama.grammars.grammarrule.md)
#### Returns
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/system.boolean)
### **<Clone>$()**
```csharp
public GrammarRule $()
```
#### Returns
[GrammarRule](./llama.grammars.grammarrule.md)