/
FunctionToolDefinition.cs
50 lines (36 loc) · 2.26 KB
/
FunctionToolDefinition.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
#nullable disable
using System;
namespace Azure.AI.OpenAI.Assistants;
/*
* CUSTOM CODE DESCRIPTION:
*
* These additions simply allow easy comparison between tool calls and tool definitions.
*/
public partial class FunctionToolDefinition
{
public static bool operator ==(FunctionToolDefinition functionToolDefinition, RunStepFunctionToolCall functionToolCall)
=> functionToolDefinition.Name == functionToolCall.Name;
public static bool operator !=(FunctionToolDefinition functionToolDefinition, RunStepFunctionToolCall functionToolCall)
=> functionToolDefinition.Name != functionToolCall.Name;
public static bool operator ==(RunStepFunctionToolCall functionToolCall, FunctionToolDefinition functionToolDefinition)
=> functionToolCall.Name == functionToolDefinition.Name;
public static bool operator !=(RunStepFunctionToolCall functionToolCall, FunctionToolDefinition functionToolDefinition)
=> functionToolCall.Name != functionToolDefinition.Name;
public static bool operator ==(FunctionToolDefinition functionToolDefinition, RequiredFunctionToolCall functionToolCall)
=> functionToolDefinition.Name == functionToolCall.Name;
public static bool operator !=(FunctionToolDefinition functionToolDefinition, RequiredFunctionToolCall functionToolCall)
=> functionToolDefinition.Name != functionToolCall.Name;
public static bool operator ==(RequiredFunctionToolCall functionToolCall, FunctionToolDefinition functionToolDefinition)
=> functionToolCall.Name == functionToolDefinition.Name;
public static bool operator !=(RequiredFunctionToolCall functionToolCall, FunctionToolDefinition functionToolDefinition)
=> functionToolCall.Name != functionToolDefinition.Name;
/// <inheritdoc/>
public override bool Equals(object obj)
=> (obj is FunctionToolDefinition toolDefinition && Name == toolDefinition.Name)
|| (obj is RunStepFunctionToolCall runStepToolCall && Name == runStepToolCall.Name)
|| (obj is RequiredFunctionToolCall requiredToolCall && Name == requiredToolCall.Name);
/// <inheritdoc/>
public override int GetHashCode() => InternalFunction.GetHashCode();
}