<?xml version="1.0" encoding="UTF-8" ?>
<class name="StringName" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
	<brief_description>
		An optimized string type for unique names.
	</brief_description>
	<description>
		[StringName]s are immutable strings designed for general-purpose representation of unique names (also called "string interning"). [StringName] ensures that only one instance of a given name exists (so two [StringName]s with the same value are the same object). Comparing them is much faster than with regular [String]s, because only the pointers are compared, not the whole strings.
		You will usually just pass a [String] to methods expecting a [StringName] and it will be automatically converted, but you may occasionally want to construct a [StringName] ahead of time with [StringName] or the literal syntax [code]&amp;"example"[/code].
		See also [NodePath], which is a similar concept specifically designed to store pre-parsed node paths.
	</description>
	<tutorials>
	</tutorials>
	<constructors>
		<constructor name="StringName">
			<return type="StringName" />
			<description>
				Constructs an empty [StringName].
			</description>
		</constructor>
		<constructor name="StringName">
			<return type="StringName" />
			<param index="0" name="from" type="StringName" />
			<description>
				Constructs a [StringName] as a copy of the given [StringName].
			</description>
		</constructor>
		<constructor name="StringName">
			<return type="StringName" />
			<param index="0" name="from" type="String" />
			<description>
				Creates a new [StringName] from the given [String]. [code]StringName("example")[/code] is equivalent to [code]&amp;"example"[/code].
			</description>
		</constructor>
	</constructors>
	<methods>
		<method name="hash" qualifiers="const">
			<return type="int" />
			<description>
				Returns the 32-bit hash value representing the [StringName]'s contents.
			</description>
		</method>
	</methods>
	<operators>
		<operator name="operator !=">
			<return type="bool" />
			<param index="0" name="right" type="String" />
			<description>
			</description>
		</operator>
		<operator name="operator !=">
			<return type="bool" />
			<param index="0" name="right" type="StringName" />
			<description>
			</description>
		</operator>
		<operator name="operator &lt;">
			<return type="bool" />
			<param index="0" name="right" type="StringName" />
			<description>
			</description>
		</operator>
		<operator name="operator &lt;=">
			<return type="bool" />
			<param index="0" name="right" type="StringName" />
			<description>
			</description>
		</operator>
		<operator name="operator ==">
			<return type="bool" />
			<param index="0" name="right" type="String" />
			<description>
			</description>
		</operator>
		<operator name="operator ==">
			<return type="bool" />
			<param index="0" name="right" type="StringName" />
			<description>
			</description>
		</operator>
		<operator name="operator &gt;">
			<return type="bool" />
			<param index="0" name="right" type="StringName" />
			<description>
			</description>
		</operator>
		<operator name="operator &gt;=">
			<return type="bool" />
			<param index="0" name="right" type="StringName" />
			<description>
			</description>
		</operator>
	</operators>
</class>