- Comprehensive Rust'a Hoş Geldiniz 🦀
- 1. Kursun Çalıştırılması
❱
- 1.1. Kurs Yapısı
- 1.2. Klavye Kısayolları
- 1.3. Çeviriler
- 2. Cargo Kullanımı
❱
- 2.1. Rust Ekosistemi
- 2.2. Kod Örnekleri
- 2.3. Cargo'nun Yerel (Local) Olarak Çalıştırılması
- Gün 1: Sabah
- 3. Hoş Geldiniz
- 4. Merhaba, Dünya
❱
- 4.1. Rust Nedir?
- 4.2. Rust'ın Faydaları
- 4.3. Deneme Alanı (Playground)
- 5. Türler ve Değerler
❱
- 5.1. Merhaba, Dünya
- 5.2. Değişkenler
- 5.3. Değerler
- 5.4. Aritmetik
- 5.5. Tür Çıkarımı
- 5.6. Alıştırma: Fibonacci
❱
- 5.6.1. Çözüm
- 6. Kontrol Akışı Temelleri
❱
- 6.1. if İfadeleri
- 6.2. Döngüler
❱
- 6.2.1. for
- 6.2.2. loop
- 6.3. break ve continue
❱
- 6.3.1. Etiketler
- 6.4. Bloklar ve Kapsamlar
❱
- 6.4.1. Kapsamlar (Scopes) ve Gölgeleme (Shadowing)
- 6.5. Fonksiyonlar
- 6.6. Makrolar
- 6.7. Alıştırma: Collatz Sekansı
❱
- 6.7.1. Çözüm
- Gün 1: Öğleden Sonra
- 7. Hoş Geldiniz
- 8. Demetler (Tuples) ve Diziler (Arrays)
❱
- 8.1. Diziler
- 8.2. Demetler
- 8.3. Dizi İterasyonu
- 8.4. Desenler ve Çözümlenme (Destructuring)
- 8.5. Alıştırma: İçiçe Diziler
❱
- 8.5.1. Çözüm
- 9. Referanslar
❱
- 9.1. Paylaşılan Referanslar
- 9.2. Özel (Exclusive) Referanslar
- 9.3. Slices: &\[T\]
- 9.4. Dizeler (Strings)
- 9.5. Alıştırma: Geometri
❱
- 9.5.1. Çözüm
- 10. Kullanıcı Tanımlı Türler
❱
- 10.1. İsimli Yapılar
- 10.2. Demet Yapıları (Tuple Structs)
- 10.3. Enumlar
- 10.4. Static
- 10.5. Const
- 10.6. Tür Eş İsimleri (Type Aliases)
- 10.7. Alıştırma: Asansör Etkinlikleri
❱
- 10.7.1. Çözüm
- Gün 2: Sabah
- 11. Hoş Geldiniz
- 12. Desen Eşleştirme
❱
- 12.1. Değerleri Eşleştirme
- 12.2. Çözümlenme
- 12.3. Let'li Kontrol Akışı
- 12.4. Alıştırma: İfade Değerlendirmesi
❱
- 12.4.1. Çözüm
- 13. Metotlar ve Özellikler (Traits)
❱
- 13.1. Metotlar
- 13.2. Özellikler (Traits)
❱
- 13.2.1. Özelliklerin (Traits) Gerçekleştirimi
- 13.2.2. Üstözellikler (Supertraits)
- 13.2.3. İlişkili Türler
- 13.3. Türetme
- 13.4. Alıştırma: Genel Kaydedici
❱
- 13.4.1. Çözüm
- 14. Jenerikler
❱
- 14.1. Jenerik Fonksiyonlar
- 14.2. Jenerik Veri Türleri
- 14.3. Jenerik Özellikler (Traits)
- 14.4. Özellik (Trait) Sınırları
- 14.5. impl Trait
- 14.6. Alıştırma: Jenerik min
❱
- 14.6.1. Çözüm
- Gün 2: Öğleden Sonra
- 15. Hoş Geldiniz
- 16. Standart Kütüphane Türleri
❱
- 16.1. Standart Kütüphane
- 16.2. Dokümantasyon
- 16.3. Option
- 16.4. Result
- 16.5. String
- 16.6. Vec
- 16.7. HashMap
- 16.8. Alıştırma: Sayıcı
❱
- 16.8.1. Çözüm
- 17. Standart Kütüphanedeki Özellikler (Traits)
❱
- 17.1. Karşılaştırmalar
- 17.2. Operatörler
- 17.3. From ve Into
- 17.4. Casting
- 17.5. Read ve Write
- 17.6. Default, yapı (struct) güncelleme sözdizimi
- 17.7. Kapanışlar (Closures)
- 17.8. Alıştırma: ROT13
❱
- 17.8.1. Çözüm
- Gün 3: Sabah
- 18. Hoş Geldiniz
- 19. Bellek Yönetimi
❱
- 19.1. Program Belleğinin Gözden Geçirilmesi
- 19.2. Bellek Yönetimine Yaklaşımlar
- 19.3. Sahiplik
- 19.4. Taşıma Semantiği
- 19.5. Clone
- 19.6. Kopyalanan Türler
- 19.7. Drop
- 19.8. Alıştırma: İnşa Edici / Yapıcı Tür (Builder Type)
❱
- 19.8.1. Çözüm
- 20. Akıllı Göstericiler
❱
- 20.1. Box<T>
- 20.2. Rc
- 20.3. Özellik Nesneleri
- 20.4. Alıştırma: İkili Ağaç
❱
- 20.4.1. Çözüm
- Gün 3: Öğleden Sonra
- 21. Hoş Geldiniz
- 22. Ödünç Alma
❱
- 22.1. Bir Değeri Ödünç Alma
- 22.2. Ödünç Alma Kontrolü
- 22.3. İç (Interior) Değiştirilebilirlik
- 22.4. Alıştırma: Sağlık İstatistikleri
❱
- 22.4.1. Çözüm
- 23. Ömürler (Lifetimes)
❱
- 23.1. Ömür için Ek Açıklamalar (Annotations)
- 23.2. Ömür Atlaması (Elision)
- 23.3. Yapıların Ömürleri
- 23.4. Alıştırma: Protobuf Ayrıştırma
❱
- 23.4.1. Çözüm
- Gün 4: Sabah
- 24. Hoş Geldiniz
- 25. Adımlayıcıyılar (Iterators)
❱
- 25.1. Iterator
- 25.2. IntoIterator
- 25.3. FromIterator
- 25.4. Alıştırma: Adımlayıcı Metot Zincirleme
❱
- 25.4.1. Çözüm
- 26. Modüller
❱
- 26.1. Modüller
- 26.2. Dosya Sistemi Hiyerarşisi
- 26.3. Görünürlük
- 26.4. use, super, self
- 26.5. Alıştırma: Bir GUI Kütüphanesi için Modüller
❱
- 26.5.1. Çözüm
- 27. Test Etme
❱
- 27.1. Test Modülleri
- 27.2. Diğer Test Türleri
- 27.3. Derleyicinin Tüyleri ve Clippy Aracı
- 27.4. Alıştırma: Luhn Algrotiması
❱
- 27.4.1. Çözüm
- Gün 4: Öğleden Sonra
- 28. Hoş Geldiniz
- 29. Hata İşleme
❱
- 29.1. Panic'ler
- 29.2. Try Operatörü
- 29.3. Try Dönüşümleri
- 29.4. Error Özelliği (Trait)
- 29.5. thiserror ve anyhow
- 29.6. Alıştırma: Result ile Yeniden Yazma
❱
- 29.6.1. Çözüm
- 30. Emniyetsiz (Unsafe) Rust
❱
- 30.1. Emniyetsiz
- 30.2. Ham Göstericilerinin İçeriği (Dereferencing)
- 30.3. Değiştirilebilir Statik Değişkenler
- 30.4. Birlikler (Unions)
- 30.5. Emniyetsiz Fonksiyonlar
- 30.6. Emniyetsiz Özellikler (Traits)
- 30.7. Alıştırma: FFI Sarıcı
❱
- 30.7.1. Çözüm
- Android
- 31. Hoş Geldiniz
- 32. Kurulum (Setup)
- 33. İnşa (Build) Kuralları
❱
- 33.1. İkili (Binary) Dosya
- 33.2. Kütüphane
- 34. AIDL
❱
- 34.1. Doğum Günü Servisi Eğitimi
❱
- 34.1.1. Arayüz
- 34.1.2. Servis API
- 34.1.3. Servis
- 34.1.4. Sunucu
- 34.1.5. Dağıtmak (Deploy)
- 34.1.6. İstemci
- 34.1.7. API'yi Değiştirme
- 34.1.8. Uyarlamaları Güncellenme
- 34.2. AIDL Türler
❱
- 34.2.1. İlkel (Primitive) Türler
- 34.2.2. Dizi Türleri
- 34.2.3. Nesnelerin Gönderilmesi
- 34.2.4. Parsellenebilir Gönderme
- 34.2.5. Dosyaların Gönderilmesi
- 35. Test Etme
❱
- 35.1. GoogleTest
- 35.2. Taklit Etme (Mocking)
- 36. Kayıt Tutma (Logging)
- 37. Birlikte Çalışabilirlik
❱
- 37.1. C ile
❱
- 37.1.1. Bindgen ile Rust Tarafından C'yi Kullanma
- 37.1.2. C Tarafından Rust'ı Kullanma
- 37.2. C++ ile
❱
- 37.2.1. Köprü Modülü
- 37.2.2. Rust Köprüsü
- 37.2.3. Oluşturulan (Generated) C++
- 37.2.4. C++ Köprüsü
- 37.2.5. Paylaşılan (Shared) Türler
- 37.2.6. Paylaşılan (Shared) Enum'lar
- 37.2.7. Rust Hata İşleme
- 37.2.8. C++ Hata İşleme
- 37.2.9. Ek Türler
- 37.2.10. Android için inşa: C++
- 37.2.11. Android için inşa: Genrules
- 37.2.12. Android için inşa: Rust
- 37.3. Java ile
- 38. Egzersizler
- Chromium
- 39. Hoş Geldiniz
- 40. Kurulum (Setup)
- 41. Chromium ve Cargo Ekosistemlerinin Karşılaştırılması
- 42. İlke (Policy)
- 43. İnşa (Build) Kuralları
❱
- 43.1. Emniyetsiz (Unsafe) Kod
- 43.2. Chromium C++'dan Rust Koduna Bağımlılık
- 43.3. Visual Studio Code
- 43.4. Alıştırma
- 44. Test Etme
❱
- 44.1. rust_gtest_interop Kütüphanesi
- 44.2. Rust Testleri için GN Kuralları
- 44.3. chromium::import! Makrosu
- 44.4. Alıştırma
- 45. C++ ile Birlikte Çalışabilirlik
❱
- 45.1. Bağlamalara Örnek
- 45.2. CXX'in Sınırlamaları
- 45.3. CXX Hata İşleme
❱
- 45.3.1. Hata İşleme: QR Örneği
- 45.3.2. Hata İşleme: PNG Örneği
- 45.4. Chromium'da CXX'i Kullanma
- 45.5. Alıştırma
- 46. Üçüncü Taraf Kasalarnı Eklenmesi
❱
- 46.1. Cargo.toml'yi Yapılandırma
- 46.2. gnrt_config.toml'yi Yapılandırma
- 46.3. Kasaların İndirilmesi
- 46.4. gn İnşa Kurallarının Oluşturulması
- 46.5. Problemlerin Çözülmesi
❱
- 46.5.1. Kod Oluşturan İnşa Betikleri (Build Scripts )
- 46.5.2. C++ Kodunu İnşa Eden (Build) veya Keyfi Eylemler Gerçekleştiren İnşa Betikleri
- 46.6. Bir Kasaya Bağımlılık
- 46.7. Gözden Geçirmeler (Reviews) ve Denetimler (Audits)
- 46.8. Chromium Kaynak Kodunun Kontrol Edilmesi
- 46.9. Kasaları Güncel Tutmak
- 46.10. Alıştırma
- 47. Bir Araya Getirmek - Alıştırma
- 48. Alıştırma Çözümleri
- Yalın Metal (Bare Metal): Sabah
- 49. Hoş Geldiniz
- 50. no_std
❱
- 50.1. Minimal Bir Örnek
- 50.2. alloc
- 51. Mikrodenetleyiciler
❱
- 51.1. Ham MMIO
- 51.2. PAC'ler
- 51.3. HAL Kasaları (Crates)
- 51.4. Kart Destek Kasaları (Board Support Crates)
- 51.5. Tür Durum Deseni
- 51.6. embedded-hal
- 51.7. probe-rs ve cargo-embed
❱
- 51.7.1. Hata Ayıklama
- 51.8. Diğer Projeler
- 52. Egzersizler
❱
- 52.1. Pusula
- 52.2. Çözümler
- Yalın Metal (Bare Metal): Öğleden Sonra
- 53. Uygulama İşlemcileri
❱
- 53.1. Rust'a Hazırlanmak
- 53.2. Satır İçi Assembly
- 53.3. MMIO
- 53.4. Bir UART Sürücü Yazalım
❱
- 53.4.1. Daha Fazla Özellik (Trait)
- 53.5. Daha İyi Bir UART Sürücüsü
❱
- 53.5.1. Bitflags Kasası
- 53.5.2. Çoklu Yazmaçlar (Registers)
- 53.5.3. Sürücü
- 53.5.4. Onu Kullan
- 53.6. Kayıt Tutma (Logging)
❱
- 53.6.1. Onu Kullan
- 53.7. İstisnalar
- 53.8. Diğer Projeler
- 54. Kullanışlı Kasalar (Crates)
❱
- 54.1. zerocopy
- 54.2. aarch64-paging
- 54.3. buddy_system_allocator
- 54.4. tinyvec
- 54.5. spin
- 55. Android
❱
- 55.1. vmbase
- 56. Egzersizler
❱
- 56.1. RTC Sürücüsü
- 56.2. Çözümler
- Eşzamanlılık: Sabah
- 57. Hoş Geldiniz
- 58. İş Parçacıkları (Threads)
❱
- 58.1. Kapsamlı İş Parçacıkları (Threads)
- 59. Kanallar
❱
- 59.1. Sınırsız Kanallar
- 59.2. Sınırlı Kanallar
- 60. Send ve Sync
❱
- 60.1. Send
- 60.2. Sync
- 60.3. Örnekler
- 61. Paylaşımlı Durum (State)
❱
- 61.1. Arc
- 61.2. Mutex
- 61.3. Örnek
- 62. Egzersizler
❱
- 62.1. Filozofların Akşam Yemeği
- 62.2. Çok İş Parçacıklı Link Denetleyicisi
- 62.3. Çözümler
- Eşzamanlılık: Öğleden Sonra
- 63. Async Temelleri
❱
- 63.1. async/await
- 63.2. Future Özellikleri (Traits)
- 63.3. Çalışma Zamanları
❱
- 63.3.1. Tokio Kasası
- 63.4. Görevler
- 63.5. Async Kanalları
- 64. Kontrol Akışı
❱
- 64.1. Join
- 64.2. Select
- 65. Tuzaklar
❱
- 65.1. Yürütücünün/Çalıştırıcının (Executor) Engellenmesi
- 65.2. Pin
- 65.3. Async Özellikleri (Traits)
- 65.4. İptal (Cancellation)
- 66. Egzersizler
❱
- 66.1. Filozofların Akşam Yemeği
- 66.2. Yayımlamalı Sohbet Uygulaması
- 66.3. Çözümler
- Son sözler
- 67. Teşekkürler!
- 68. Sözlük
- 69. Diğer Kaynaklar
- 70. Emekler