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
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
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:
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:
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:
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))
}