WeaviateEx.Types.UUID (WeaviateEx v0.7.4)

View Source

UUID utilities for Weaviate objects.

Provides UUID generation, validation, and deterministic UUID creation.

Examples

# Generate new UUID
uuid = UUID.generate()

# Validate UUID
{:ok, uuid} = UUID.validate("550e8400-e29b-41d4-a716-446655440000")

# Generate deterministic UUID from string
uuid = UUID.from_string("Article", "my-unique-id")

Summary

Functions

Extract UUID from a Weaviate beacon URL.

Generate a deterministic UUID v5 from namespace and name.

Generate a new random UUID v4.

Check if string is valid UUID.

Validate a UUID string.

Functions

extract_from_beacon(url)

@spec extract_from_beacon(String.t()) :: {:ok, String.t()} | {:error, String.t()}

Extract UUID from a Weaviate beacon URL.

Beacon URLs have the format:

  • weaviate://localhost/<uuid>
  • weaviate://localhost/<collection>/<uuid>

Examples

iex> UUID.extract_from_beacon("weaviate://localhost/550e8400-e29b-41d4-a716-446655440000")
{:ok, "550e8400-e29b-41d4-a716-446655440000"}

iex> UUID.extract_from_beacon("weaviate://localhost/Article/550e8400-e29b-41d4-a716-446655440000")
{:ok, "550e8400-e29b-41d4-a716-446655440000"}

iex> UUID.extract_from_beacon("https://example.com/uuid")
{:error, "Not a valid Weaviate beacon URL: https://example.com/uuid"}

from_string(namespace, name)

@spec from_string(String.t(), String.t()) :: String.t()

Generate a deterministic UUID v5 from namespace and name.

Useful for creating reproducible UUIDs from string identifiers.

Examples

iex> UUID.from_string("Article", "my-unique-id")
"..." # Same result every time for same inputs

iex> UUID.from_string("Article", "id-1") == UUID.from_string("Article", "id-2")
false

generate()

@spec generate() :: String.t()

Generate a new random UUID v4.

Examples

iex> uuid = UUID.generate()
iex> UUID.valid?(uuid)
true

valid?(uuid)

@spec valid?(String.t()) :: boolean()

Check if string is valid UUID.

Examples

iex> UUID.valid?("550e8400-e29b-41d4-a716-446655440000")
true

iex> UUID.valid?("invalid")
false

validate(uuid)

@spec validate(String.t()) :: {:ok, String.t()} | {:error, String.t()}

Validate a UUID string.

Returns the UUID normalized to lowercase if valid.

Examples

iex> UUID.validate("550e8400-e29b-41d4-a716-446655440000")
{:ok, "550e8400-e29b-41d4-a716-446655440000"}

iex> UUID.validate("550E8400-E29B-41D4-A716-446655440000")
{:ok, "550e8400-e29b-41d4-a716-446655440000"}

iex> UUID.validate("invalid")
{:error, "Invalid UUID format: invalid"}