Ana içeriğe atla

API Fonksiyonları

Ziva, kütüphane davranışını yapılandırmak, performansı optimize etmek ve gelişmiş kullanım için zengin bir global fonksiyon seti sağlar.
Bu fonksiyonlar ana kütüphane bileşenlerini tamamlar ve Ziva davranışını özel uygulama gereksinimlerinize göre ince ayar yapmanıza olanak tanır.

Otomatik Yapılandırma

AutoConfigure()

Mevcut sistemde optimal performans için Ziva’u otomatik olarak yapılandırır.
func main() {
    // Program başlatımında çağrılması önerilir
    ziva.AutoConfigure()

    // Uygulama kodunuz
    queue := ziva.NewQueue("Başlık")
}
Sistem için otomatik optimizasyon sağlamak üzere program başlatımında AutoConfigure() çağırın.
Bu fonksiyonun yaptıkları:
  • Mevcut sistem belleğini analiz eder
  • İşlemci mimarisini belirler
  • Gömülü sistemler için ayarları optimize eder
  • Önbellekleme ve tamponlamayı yapılandırır

Is64Bit() bool

Optimal algoritmaları seçmek için sistem mimarisini belirler.
if ziva.Is64Bit() {
    // 64-bit sistemler için algoritmaları kullan
    fmt.Println("64-bit mimari")
} else {
    // 32-bit sistemler için optimizasyonlar
    fmt.Println("32-bit mimari")
}
Döndürür: 64-bit sistemler için true, 32-bit sistemler için false

Performans Araçları

RepeatEfficient(s string, count int) string

Temel dizeyi verimli şekilde tekrarlayarak dize oluşturur.
// Tekrarlardan verimli dize oluşturma
separator := ziva.RepeatEfficient("-", 50)
fmt.Println(separator) // "------------------------------------------------"
Parametreler:
  • s - tekrarlanacak dize
  • count - tekrar sayısı
Döndürür: sonuç dizeyi

JoinEfficient(parts []string, separator string) string

Performans için optimize edilmiş ayırıcı ile dize dizisini birleştirir.
parts := []string{"bir", "iki", "üç"}
result := ziva.JoinEfficient(parts, " | ")
fmt.Println(result) // "bir | iki | üç"
Parametreler:
  • parts - birleştirilecek dize dizisi
  • separator - öğeler arası ayırıcı
Döndürür: birleştirilmiş dize

FastConcat(parts …string) string

Ayırıcı olmadan birden fazla dizenin hızlı birleştirilmesi.
result := ziva.FastConcat("Merhaba", " ", "dünya", "!")
fmt.Println(result) // "Merhaba dünya!"
Parametreler:
  • parts - birleştirilecek değişken sayıda dize
Döndürür: birleştirilmiş dize

CleanWhitespaceEfficient(s string) string

Fazla boşlukları ve satır başlarını verimli şekilde kaldırır.
cleaned := ziva.CleanWhitespaceEfficient("  çok   boşluk  \n\t")
fmt.Println(cleaned) // "çok boşluk"
Parametreler:
  • s - temizlenecek dize
Döndürür: temizlenmiş dize

Renk Yönetimi

SetErrorColor(errorsColor, statusColor lipgloss.TerminalColor)

Arayüzde hataları ve durumları görüntülemek için renkleri yapılandırır.
import "github.com/charmbracelet/lipgloss"

// Hatalar için kırmızı, durum için sarı renk ayarla
ziva.SetErrorColor(lipgloss.Color("#FF0000"), lipgloss.Color("#FFFF00"))
Parametreler:
  • errorsColor - hataları görüntülemek için renk
  • statusColor - durum bilgisini görüntülemek için renk

ResetErrorColors()

Hata ve durum renklerini varsayılan değerlere sıfırlar.
// Varsayılan renkleri geri yükle
ziva.ResetErrorColors()

EnableEmbeddedMode()

Optimize edilmiş renk şeması ile gömülü sistem modunu etkinleştirir.
// Yönlendiriciler, IoT cihazları için
ziva.EnableEmbeddedMode()
Bu mod, sınırlı sistem kaynakları tespit edildiğinde otomatik olarak etkinleştirilir.

EnableASCIIMode()

Sınırlı karakter desteği olan terminaller için ASCII modunu etkinleştirir.
// Eski terminaller veya sınırlı ortamlar için
ziva.EnableASCIIMode()

IsEmbeddedColorMode() bool

Gömülü sistem modunun etkin olup olmadığını kontrol eder.
if ziva.IsEmbeddedColorMode() {
    fmt.Println("Gömülü sistem modunda çalışıyor")
}
Döndürür: gömülü sistem modu etkinse true

Doğrulayıcılar

Ziva, çeşitli veri türlerini kontrol etmek için hazır doğrulayıcılar sağlar. Tüm doğrulayıcılar InputTask ile kullanılabilir.

NewPasswordValidator(minLength int) Validator

Minimum uzunlukta şifreleri kontrol etmek için doğrulayıcı oluşturur.
validator := ziva.NewPasswordValidator(8)
task := ziva.NewInputTask("Şifre", "Şifre girin:")
task.WithValidator(validator)
Parametreler:
  • minLength - minimum şifre uzunluğu
Döndürür: şifre doğrulayıcısı

NewEmailValidator() Validator

E-posta adreslerini kontrol etmek için doğrulayıcı oluşturur.
validator := ziva.NewEmailValidator()
task := ziva.NewInputTask("E-posta", "E-posta girin:")
task.WithValidator(validator)
Döndürür: e-posta adresi doğrulayıcısı

NewIPValidator(allowIPv4, allowIPv6 bool) Validator

IPv4 ve/veya IPv6 desteği ile IP adreslerini kontrol etmek için doğrulayıcı oluşturur.
// Sadece IPv4'e izin ver
validator := ziva.NewIPValidator(true, false)

// Hem IPv4 hem IPv6'ya izin ver
validatorBoth := ziva.NewIPValidator(true, true)
Parametreler:
  • allowIPv4 - IPv4 adreslerine izin ver
  • allowIPv6 - IPv6 adreslerine izin ver
Döndürür: IP adresi doğrulayıcısı

NewIPv4Validator() Validator

IPv4 adreslerini kontrol etmek için doğrulayıcı oluşturur.
validator := ziva.NewIPv4Validator()
task := ziva.NewInputTask("IP", "IPv4 adresi girin:")
task.WithValidator(validator)
Döndürür: IPv4 adresi doğrulayıcısı

NewIPv6Validator() Validator

IPv6 adreslerini kontrol etmek için doğrulayıcı oluşturur.
validator := ziva.NewIPv6Validator()
task := ziva.NewInputTask("IPv6", "IPv6 adresi girin:")
task.WithValidator(validator)
Döndürür: IPv6 adresi doğrulayıcısı

NewDomainValidator() Validator

Alan adlarını kontrol etmek için doğrulayıcı oluşturur.
validator := ziva.NewDomainValidator()
task := ziva.NewInputTask("Alan Adı", "Alan adı girin:")
task.WithValidator(validator)
Döndürür: alan adı doğrulayıcısı

NewTextValidator(minLen, maxLen int) Validator

Metin uzunluğunu kontrol etmek için doğrulayıcı oluşturur.
// 5 ila 100 karakter arası metin
validator := ziva.NewTextValidator(5, 100)
task := ziva.NewInputTask("Metin", "Açıklama girin:")
task.WithValidator(validator)
Parametreler:
  • minLen - minimum metin uzunluğu
  • maxLen - maksimum metin uzunluğu
Döndürür: metin doğrulayıcısı

Bellek Optimizasyonu

InternString(s string) string

Tekrarlanan dizelerle çalışırken bellek tasarrufu için dizeyi intern eder.
// Aynı dizelerle çalışırken bellek tasarrufu
title1 := ziva.InternString("Başlık")
title2 := ziva.InternString("Başlık") // Aynı belleği kullanır
Parametreler:
  • s - intern edilecek dize
Döndürür: intern edilmiş dize
Dikkatli kullanın - intern edilmiş dizeler önbellek temizlenene kadar bellekte kalır.

GetCacheStats() (size int, capacity int)

İntern edilmiş dize önbelleğinin kullanım istatistiklerini döndürür.
size, capacity := ziva.GetCacheStats()
fmt.Printf("Kullanılan: %d/%d\n", size, capacity)
Döndürür:
  • size - mevcut önbellek boyutu
  • capacity - maksimum önbellek kapasitesi

ClearInternCache()

Belleği boşaltmak için intern edilmiş dize önbelleğini temizler.
// Kapatma sırasında veya bellek düşük olduğunda temizle
ziva.ClearInternCache()

Düzen Araçları

CalculateLayoutWidth(screenWidth int) int

Arayüz öğesi düzeni için optimal genişliği hesaplar.
screenWidth := 120
layoutWidth := ziva.CalculateLayoutWidth(screenWidth)
fmt.Printf("Önerilen genişlik: %d\n", layoutWidth)
Parametreler:
  • screenWidth - karakter cinsinden ekran genişliği
Döndürür: düzen için optimal genişlik Seçim listelerinde yardım bilgisini görüntülemek için ayırıcı ayarlar.
// Ayırıcıyı " - " den " → " ya değiştir
Parametreler:
  • delim - ayırıcı dize
Seçim listelerindeki yardım ipuçlarının görünümünü özelleştirmek için bu fonksiyonu kullanın.

Kullanım Örnekleri

Gömülü Sistemler için Kapsamlı Kurulum

func setupEmbeddedEnvironment() {
    // Otomatik yapılandırma
    ziva.AutoConfigure()

    // Gömülü sistem modunu etkinleştir
    ziva.EnableEmbeddedMode()

    // Daha iyi görünürlük için renkleri yapılandır
    ziva.SetErrorColor(lipgloss.Color("#FF6B6B"), lipgloss.Color("#FFE66D"))

    // Mimariyi kontrol et
    if !ziva.Is64Bit() {
        // 32-bit sistemler için ek optimizasyonlar
        ziva.EnableASCIIMode()
    }
}

Dize İşlemleri Optimizasyonu

func createFormattedOutput(items []string) string {
    // Verimli ayırıcı oluşturma
    separator := ziva.RepeatEfficient("=", 50)

    // Öğeleri birleştir
    content := ziva.JoinEfficient(items, "\n")

    // Tüm parçaları hızlı birleştirme
    return ziva.FastConcat(
        separator, "\n",
        "RAPOR\n",
        separator, "\n",
        content, "\n",
        separator,
    )
}

Doğrulanmış Giriş Oluşturma

func createValidatedInput() {
    // Doğrulamalı e-posta
    emailTask := ziva.NewInputTask("E-posta", "E-postanızı girin:")
    emailTask.WithValidator(ziva.NewEmailValidator())

    // Minimum uzunlukta şifre
    passwordTask := ziva.NewInputTask("Şifre", "Şifre oluşturun:")
    passwordTask.WithValidator(ziva.NewPasswordValidator(8))

    // IPv4 ve IPv6 destekli IP adresi
    ipTask := ziva.NewInputTask("IP", "IP adresi girin:")
    ipTask.WithValidator(ziva.NewIPValidator(true, true))
}
I