Kategorie
Ebooki
-
Biznes i ekonomia
- Bitcoin
- Bizneswoman
- Coaching
- Controlling
- E-biznes
- Ekonomia
- Finanse
- Giełda i inwestycje
- Kompetencje osobiste
- Komputer w biurze
- Komunikacja i negocjacje
- Mała firma
- Marketing
- Motywacja
- Multimedialne szkolenia
- Nieruchomości
- Perswazja i NLP
- Podatki
- Polityka społeczna
- Poradniki
- Prezentacje
- Przywództwo
- Public Relation
- Raporty, analizy
- Sekret
- Social Media
- Sprzedaż
- Start-up
- Twoja kariera
- Zarządzanie
- Zarządzanie projektami
- Zasoby ludzkie (HR)
-
Dla dzieci
-
Dla młodzieży
-
Edukacja
-
Encyklopedie, słowniki
-
E-prasa
- Architektura i wnętrza
- BHP
- Biznes i Ekonomia
- Dom i ogród
- E-Biznes
- Ekonomia i finanse
- Finanse
- Finanse osobiste
- Firma
- Fotografia
- Informatyka
- Kadry i płace
- Komputery, Excel
- Księgowość
- Kultura i literatura
- Naukowe i akademickie
- Ochrona środowiska
- Opiniotwórcze
- Oświata
- Podatki
- Podróże
- Psychologia
- Religia
- Rolnictwo
- Rynek książki i prasy
- Transport i Spedycja
- Zdrowie i uroda
-
Historia
-
Informatyka
- Aplikacje biurowe
- Bazy danych
- Bioinformatyka
- Biznes IT
- CAD/CAM
- Digital Lifestyle
- DTP
- Elektronika
- Fotografia cyfrowa
- Grafika komputerowa
- Gry
- Hacking
- Hardware
- IT w ekonomii
- Pakiety naukowe
- Podręczniki szkolne
- Podstawy komputera
- Programowanie
- Programowanie mobilne
- Serwery internetowe
- Sieci komputerowe
- Start-up
- Systemy operacyjne
- Sztuczna inteligencja
- Technologia dla dzieci
- Webmasterstwo
-
Inne
-
Języki obce
-
Kultura i sztuka
-
Lektury szkolne
-
Literatura
- Antologie
- Ballada
- Biografie i autobiografie
- Dla dorosłych
- Dramat
- Dzienniki, pamiętniki, listy
- Epos, epopeja
- Esej
- Fantastyka i science-fiction
- Felietony
- Fikcja
- Humor, satyra
- Inne
- Klasyczna
- Kryminał
- Literatura faktu
- Literatura piękna
- Mity i legendy
- Nobliści
- Nowele
- Obyczajowa
- Okultyzm i magia
- Opowiadania
- Pamiętniki
- Podróże
- Poemat
- Poezja
- Polityka
- Popularnonaukowa
- Powieść
- Powieść historyczna
- Proza
- Przygodowa
- Publicystyka
- Reportaż
- Romans i literatura obyczajowa
- Sensacja
- Thriller, Horror
- Wywiady i wspomnienia
-
Nauki przyrodnicze
-
Nauki społeczne
-
Podręczniki szkolne
-
Popularnonaukowe i akademickie
- Archeologia
- Bibliotekoznawstwo
- Filmoznawstwo
- Filologia
- Filologia polska
- Filozofia
- Finanse i bankowość
- Geografia
- Gospodarka
- Handel. Gospodarka światowa
- Historia i archeologia
- Historia sztuki i architektury
- Kulturoznawstwo
- Lingwistyka
- Literaturoznawstwo
- Logistyka
- Matematyka
- Medycyna
- Nauki humanistyczne
- Pedagogika
- Pomoce naukowe
- Popularnonaukowa
- Pozostałe
- Psychologia
- Socjologia
- Teatrologia
- Teologia
- Teorie i nauki ekonomiczne
- Transport i spedycja
- Wychowanie fizyczne
- Zarządzanie i marketing
-
Poradniki
-
Poradniki do gier
-
Poradniki zawodowe i specjalistyczne
-
Prawo
- BHP
- Historia
- Kodeks drogowy. Prawo jazdy
- Nauki prawne
- Ochrona zdrowia
- Ogólne, kompendium wiedzy
- Podręczniki akademickie
- Pozostałe
- Prawo budowlane i lokalowe
- Prawo cywilne
- Prawo finansowe
- Prawo gospodarcze
- Prawo gospodarcze i handlowe
- Prawo karne
- Prawo karne. Przestępstwa karne. Kryminologia
- Prawo międzynarodowe
- Prawo międzynarodowe i zagraniczne
- Prawo ochrony zdrowia
- Prawo oświatowe
- Prawo podatkowe
- Prawo pracy i ubezpieczeń społecznych
- Prawo publiczne, konstytucyjne i administracyjne
- Prawo rodzinne i opiekuńcze
- Prawo rolne
- Prawo socjalne, prawo pracy
- Prawo Unii Europejskiej
- Przemysł
- Rolne i ochrona środowiska
- Słowniki i encyklopedie
- Zamówienia publiczne
- Zarządzanie
-
Przewodniki i podróże
- Afryka
- Albumy
- Ameryka Południowa
- Ameryka Środkowa i Północna
- Australia, Nowa Zelandia, Oceania
- Austria
- Azja
- Bałkany
- Bliski Wschód
- Bułgaria
- Chiny
- Chorwacja
- Czechy
- Dania
- Egipt
- Estonia
- Europa
- Francja
- Góry
- Grecja
- Hiszpania
- Holandia
- Islandia
- Litwa
- Łotwa
- Mapy, Plany miast, Atlasy
- Miniprzewodniki
- Niemcy
- Norwegia
- Podróże aktywne
- Polska
- Portugalia
- Pozostałe
- Przewodniki po hotelach i restauracjach
- Rosja
- Rumunia
- Słowacja
- Słowenia
- Szwajcaria
- Szwecja
- Świat
- Turcja
- Ukraina
- Węgry
- Wielka Brytania
- Włochy
-
Psychologia
- Filozofie życiowe
- Kompetencje psychospołeczne
- Komunikacja międzyludzka
- Mindfulness
- Ogólne
- Perswazja i NLP
- Psychologia akademicka
- Psychologia duszy i umysłu
- Psychologia pracy
- Relacje i związki
- Rodzicielstwo i psychologia dziecka
- Rozwiązywanie problemów
- Rozwój intelektualny
- Sekret
- Seksualność
- Uwodzenie
- Wygląd i wizerunek
- Życiowe filozofie
-
Religia
-
Sport, fitness, diety
-
Technika i mechanika
Audiobooki
-
Biznes i ekonomia
- Bitcoin
- Bizneswoman
- Coaching
- Controlling
- E-biznes
- Ekonomia
- Finanse
- Giełda i inwestycje
- Kompetencje osobiste
- Komunikacja i negocjacje
- Mała firma
- Marketing
- Motywacja
- Nieruchomości
- Perswazja i NLP
- Podatki
- Poradniki
- Prezentacje
- Przywództwo
- Public Relation
- Sekret
- Social Media
- Sprzedaż
- Start-up
- Twoja kariera
- Zarządzanie
- Zarządzanie projektami
- Zasoby ludzkie (HR)
-
Dla dzieci
-
Dla młodzieży
-
Edukacja
-
Encyklopedie, słowniki
-
Historia
-
Informatyka
-
Inne
-
Języki obce
-
Kultura i sztuka
-
Lektury szkolne
-
Literatura
- Antologie
- Ballada
- Biografie i autobiografie
- Dla dorosłych
- Dramat
- Dzienniki, pamiętniki, listy
- Epos, epopeja
- Esej
- Fantastyka i science-fiction
- Felietony
- Fikcja
- Humor, satyra
- Inne
- Klasyczna
- Kryminał
- Literatura faktu
- Literatura piękna
- Mity i legendy
- Nobliści
- Nowele
- Obyczajowa
- Okultyzm i magia
- Opowiadania
- Pamiętniki
- Podróże
- Poezja
- Polityka
- Popularnonaukowa
- Powieść
- Powieść historyczna
- Proza
- Przygodowa
- Publicystyka
- Reportaż
- Romans i literatura obyczajowa
- Sensacja
- Thriller, Horror
- Wywiady i wspomnienia
-
Nauki przyrodnicze
-
Nauki społeczne
-
Popularnonaukowe i akademickie
-
Poradniki
-
Poradniki zawodowe i specjalistyczne
-
Prawo
-
Przewodniki i podróże
-
Psychologia
- Filozofie życiowe
- Komunikacja międzyludzka
- Mindfulness
- Ogólne
- Perswazja i NLP
- Psychologia akademicka
- Psychologia duszy i umysłu
- Psychologia pracy
- Relacje i związki
- Rodzicielstwo i psychologia dziecka
- Rozwiązywanie problemów
- Rozwój intelektualny
- Sekret
- Seksualność
- Uwodzenie
- Wygląd i wizerunek
- Życiowe filozofie
-
Religia
-
Sport, fitness, diety
-
Technika i mechanika
Kursy video
-
Bazy danych
-
Big Data
-
Biznes, ekonomia i marketing
-
Cyberbezpieczeństwo
-
Data Science
-
DevOps
-
Dla dzieci
-
Elektronika
-
Grafika/Wideo/CAX
-
Gry
-
Microsoft Office
-
Narzędzia programistyczne
-
Programowanie
-
Rozwój osobisty
-
Sieci komputerowe
-
Systemy operacyjne
-
Testowanie oprogramowania
-
Urządzenia mobilne
-
UX/UI
-
Web development
-
Zarządzanie
Podcasty
- Ebooki
- Programowanie
- Inne - Programowanie
- Programowanie w języku Rust. Wydajność i bezpieczeństwo
Szczegóły ebooka
![Programowanie w języku Rust. Wydajność i bezpieczeństwo](https://static01.helion.com.pl/global/okladki/326x466/prrust.jpg)
Programowanie systemowe zwykle nie interesuje twórców aplikacji. Niemniej warunkiem jej poprawnego działania jest właśnie kod systemowy. Programowanie systemowe zapewnia między innymi działanie systemu operacyjnego, sterowników, systemu plików, kodeków, a także zarządzanie pamięcią czy obsługę sieci. Jako że dotyczy wykorzystania zasobów, każdy szczegół, każdy bajt pamięci operacyjnej i każdy cykl procesora ma znaczenie. Rust - wyjątkowe narzędzie, cenione za szybkość, współbieżność i bezpieczeństwo - sprawi, że tworzenie kodu systemowego będzie łatwiejsze. Jednak tym, którzy dotychczas używali C#, Javy czy Pythona, język ten może się wydawać dość trudny do zrozumienia.
Ta książka jest znakomitym wprowadzeniem do języka Rust, pozwala też rozeznać się w zasadach programowania systemowego. Pokazuje, w jaki sposób zapewnić w kodzie bezpieczeństwo pamięci i wątków oraz sprawić, aby program był wykonywany szybko i bez błędów. Poszczególne zagadnienia zostały przedstawione jasno i przystępnie, a prezentowane koncepcje - zilustrowane licznymi przykładami kodu. Nie zabrakło również wskazówek ułatwiających bezproblemowe tworzenie wydajnego i bezpiecznego kodu. Książka jest przeznaczona przede wszystkim dla programistów systemowych, jednak przyda się także twórcom aplikacji, którym pozwoli zrozumieć zasady rządzące językiem Rust, a w efekcie tworzyć lepszy i łatwiejszy w utrzymaniu kod.
W tej książce między innymi:
- solidne wprowadzenie do języka Rust
- podstawowe typy danych, własności i referencje
- obsługa błędów w języku Rust
- obsługa wejścia-wyjścia, makra i współbieżność
- obsługa niebezpiecznego kodu
Rust. Programowanie systemowe. Najlepiej zacząć od podstaw!
Wstęp 15
1. Dlaczego Rust? 19
- Bezpieczeństwo typów 21
2. Pierwsze spotkanie z Rustem 25
- Pobranie i instalacja Rusta 25
- Prosta funkcja 28
- Pisanie i uruchamianie testów 29
- Obsługa argumentów wiersza poleceń 30
- Prosty serwer web 34
- Programowanie współbieżne 41
- Czym jest zbiór Mandelbrota? 42
- Parsowanie argumentów wiersza poleceń 46
- Odwzorowanie pikseli na liczby zespolone 48
- Rysowanie zbioru 50
- Zapis obrazu do pliku 51
- Program Mandelbrota działający współbieżnie 53
- Uruchomienie programu 57
- Przezroczyste bezpieczeństwo 57
3. Typy proste 59
- Typy maszynowe 62
- Typy całkowite 62
- Typy zmiennoprzecinkowe 65
- Typ logiczny 67
- Typ znakowy 67
- Krotki 69
- Typy wskaźnikowe 71
- Referencje 71
- Pudełka 72
- Wskaźniki niechronione 72
- Tablice, wektory i podzbiory 72
- Tablice 73
- Wektory 74
- Dodawanie pojedynczych elementów do wektora 77
- Podzbiory 77
- Typ String 79
- Literały łańcuchowe 79
- Łańcuchy bajtów 80
- Łańcuchy znaków w pamięci 80
- Typ String 82
- Podstawowe cechy typu String 83
- Inne typy znakowe 83
- Co dalej? 84
4. Reguła własności 85
- Reguła własności 87
- Przeniesienie własności 91
- Więcej operacji związanych z przeniesieniem własności 96
- Przeniesienie własności a przepływ sterowania 97
- Przeniesienie własności a struktury indeksowane 98
- Typy kopiowalne 100
- Rc i Arc: własność współdzielona 103
5. Referencje 107
- Referencje jako wartości 111
- Referencje Rusta kontra referencje C++ 111
- Referencje a operacja przypisania 112
- Referencje do referencji 112
- Porównywanie referencji 113
- Referencje nigdy nie są puste 114
- Referencje do wyrażeń 114
- Referencje do podzbiorów i zestawów metod 115
- Bezpieczeństwo referencji 115
- Referencja do zmiennej lokalnej 115
- Parametry w postaci referencji 118
- Referencje jako argumenty 120
- Referencja jako wartość zwracana 121
- Struktura zawierająca referencje 122
- Odrębny cykl życia 124
- Pomijanie parametrów cyklu życia 125
- Referencje współdzielone kontra mutowalne 127
- Walka ze sztormem na morzu obiektów 134
6. Wyrażenia 137
- Język wyrażeń 137
- Bloki kodu i średniki 138
- Deklaracje 140
- if i match 141
- if let 143
- Pętle 144
- Wyrażenie return 146
- Analiza przepływu sterowania 146
- Wywołania funkcji i metod 148
- Pola i elementy 149
- Operatory referencji 150
- Operatory arytmetyczne, bitowe, porównania i logiczne 150
- Przypisanie 151
- Rzutowanie typów 152
- Domknięcia 153
- Priorytety operatorów 153
- Co dalej? 156
7. Obsługa błędów 157
- Błąd panic 157
- Odwinięcie stosu 158
- Przerywanie procesu 159
- Typ Result 160
- Przechwytywanie błędów 160
- Alias typu Result 161
- Wyświetlanie informacji o błędach 162
- Propagacja błędów 163
- Jednoczesna obsługa błędów różnych typów 164
- Błędy, które nie powinny się zdarzyć 166
- Ignorowanie błędów 167
- Obsługa błędów w funkcji main() 167
- Definiowanie własnego typu błędu 168
- Co daje nam typ Result? 169
8. Paczki i moduły 171
- Paczki 171
- Profile budowania 174
- Moduły 174
- Umieszczanie modułów w oddzielnych plikach 175
- Ścieżki i importy 177
- Standardowe preludium 179
- Podstawowe składniki modułów 179
- Zmiana programu w bibliotekę 181
- Katalog src/bin 183
- Atrybuty 184
- Testy i dokumentacja 186
- Testy integracyjne 188
- Dokumentacja 189
- Doc-testy 191
- Definiowanie zależności 193
- Wersje 194
- Cargo.lock 195
- Publikowanie paczek na stronie crates.io 196
- Obszary robocze 198
- Więcej fajnych rzeczy 199
9. Struktury 201
- Struktury z polami nazywanymi 201
- Struktury z polami numerowanymi 204
- Struktury puste 204
- Reprezentacja struktur w pamięci 205
- Definiowanie metod w bloku impl 206
- Struktury generyczne 209
- Struktury z parametrem cyklu życia 210
- Dziedziczenie standardowych zestawów metod 211
- Zmienność wewnętrzna 212
10. Typy wyliczeniowe i wzorce 217
- Typy wyliczeniowe 218
- Typy wyliczeniowe zawierające dane 220
- Typ wyliczeniowy w pamięci 221
- Większe struktury danych stosujące typy wyliczeniowe 222
- Generyczne typy wyliczeniowe 223
- Wzorce 226
- Literały, zmienne i symbole wieloznaczne 228
- Wzorce w postaci krotki lub struktury 230
- Wzorce z referencjami 231
- Dopasowanie do wielu wartości 233
- Warunki dodatkowe 234
- Wzorce @ 235
- Gdzie używamy wzorców 235
- Wypełnianie drzewa binarnego 236
- Podsumowanie 238
11. Zestawy metod (interfejsy) i typy generyczne 239
- Stosowanie zestawów metod 241
- Obiekt implementujący zestaw metod 242
- Struktura obiektu implementującego 243
- Funkcje generyczne 244
- Na co się zdecydować? 247
- Definiowanie i implementacja zestawów metod 249
- Metody domyślne 250
- Implementacja zestawów metod dla istniejących już typów 251
- Zestaw metod a słowo kluczowe Self 252
- Rozszerzanie zestawu metod (dziedziczenie) 254
- Metody statyczne 254
- W pełni kwalifikowana nazwa metody 255
- Zestawy metod definiujące relacje między typami 257
- Typy powiązane 257
- Generyczny zestaw metod (czyli jak działa przeciążanie operatorów) 260
- Zaprzyjaźnione zestawy metod (czyli jak działa generator liczb pseudolosowych) 261
- Inżynieria wsteczna ograniczeń 263
- Wnioski 266
12. Przeciążanie operatorów 267
- Operatory arytmetyczne i bitowe 268
- Operatory jednoargumentowe 270
- Operatory dwuargumentowe 271
- Operatory przypisania złożonego 272
- Test równości 273
- Porównania szeregujące 276
- Interfejsy Index i IndexMut 278
- Inne operatory 281
13. Interfejsy narzędziowe 283
- Drop 284
- Sized 287
- Clone 289
- Copy 290
- Deref i DerefMut 291
- Default 294
- AsRef i AsMut 296
- Borrow i BorrowMut 297
- From i Into 299
- ToOwned 301
- Borrow i ToOwned w działaniu 302
14. Domknięcia 305
- Przechwytywanie zmiennych 306
- Domknięcia, które pożyczają wartość 307
- Domknięcia, które przejmują własność 308
- Typy funkcji i domknięć 309
- Domknięcia a wydajność 311
- Domknięcia a bezpieczeństwo 313
- Domknięcia, które zabijają 313
- FnOnce 314
- FnMut 315
- Funkcje zwrotne 317
- Skuteczne korzystanie z domknięć 320
15. Iteratory 323
- Iterator i IntoIterator 324
- Tworzenie iteratorów 326
- Metody iter i iter_mut 326
- Implementacje interfejsu IntoIterator 326
- Metoda drain 328
- Inne źródła iteratorów 329
- Adaptery 330
- map i filter 330
- filter_map i flat_map 333
- scan 335
- take i take_while 335
- skip i skip_while 336
- peekable 337
- fuse 338
- Iteratory obustronne i rev 339
- inspect 340
- chain 341
- enumerate 341
- zip 342
- by_ref 342
- cloned 344
- cycle 344
- Konsumowanie iteratorów 345
- Proste agregaty: count, sum i product 345
- max i min 345
- max_by i min_by 346
- max_by_key i min_by_key 346
- Porównywanie sekwencji elementów 347
- any i all 348
- position, rposition oraz ExactSizeIterator 348
- fold 349
- nth 349
- last 350
- find 350
- Tworzenie kolekcji: collect i FromIterator 350
- Zestaw metod Extend 352
- partition 353
- Implementacja własnych iteratorów 354
16. Kolekcje 359
- Przegląd kolekcji 360
- Vec
361 - Dostęp do elementów 362
- Iteracja 363
- Zwiększanie i zmniejszanie wielkości wektora 364
- Łączenie 367
- Podział 367
- Zamiana 369
- Sortowanie i wyszukiwanie 370
- Porównywanie podzbiorów 371
- Elementy losowe 372
- Reguły zapobiegające konfliktom w czasie iteracji 372
- VecDeque
373 - LinkedList
375 - BinaryHeap
376 - HashMap
i BTreeMap 377 - Entry 380
- Iterowanie map 381
- HashSet
i BTreeSet 382 - Iteracja zbioru 383
- Kiedy równe wartości są różne 383
- Operacje dotyczące całego zbioru 383
- Haszowanie 385
- Niestandardowe algorytmy haszujące 386
- Kolekcje standardowe i co dalej? 387
17. Tekst i łańcuchy znaków 389
- Podstawy Unicode 389
- ASCII, Latin-1 i Unicode 390
- UTF-8 390
- Kierunek tekstu 392
- Znaki (typ char) 392
- Klasyfikacja znaków 392
- Obsługa cyfr 393
- Zmiana wielkości liter 394
- Konwersja znaku do i z liczby całkowitej 394
- Typy String i str 395
- Tworzenie łańcuchów znaków 396
- Prosta inspekcja 396
- Dołączanie i wstawianie tekstu 397
- Usuwanie tekstu 398
- Konwencje nazewnicze dotyczące wyszukiwania i iterowania 399
- Wyszukiwanie tekstu i wzorce 399
- Wyszukiwanie i zamiana 400
- Iterowanie tekstu 401
- Obcinanie 403
- Zmiana wielkości liter w łańcuchach 403
- Konwersja tekstu do wartości innego typu 404
- Konwersja wartości innego typu do tekstu 404
- Tworzenie referencji innego typu 405
- Tekst jako UTF-8 406
- Tworzenie tekstu na podstawie danych UTF-8 406
- Alokacja warunkowa 407
- Łańcuchy znaków jako kolekcje generyczne 409
- Formatowanie wartości 410
- Formatowanie tekstu 411
- Formatowanie liczb 412
- Formatowanie innych typów 414
- Formatowanie wartości z myślą o debugowaniu 415
- Formatowanie i debugowanie wskaźników 416
- Wiązanie argumentów za pomocą indeksu i nazwy 416
- Dynamiczne definiowanie długości i precyzji 417
- Formatowanie własnych typów 417
- Użycie języka formatowania we własnym kodzie 419
- Wyrażenia regularne 421
- Podstawowe użycie wyrażeń regularnych 421
- Wyrażenia regularne w trybie leniwym 422
- Normalizacja 423
- Rodzaje normalizacji 424
- Biblioteka unicode-normalization 425
18. Operacje wejścia/wyjścia 427
- Obiekty typu reader i writer 428
- Obiekty typu reader 429
- Buforowany obiekt typu reader 431
- Przeglądanie tekstu 432
- Pobieranie tekstu 434
- Obiekty typu writer 435
- Pliki 436
- Wyszukiwanie 437
- Inne rodzaje obiektów reader i writer 437
- Dane binarne, kompresja i serializacja 439
- Pliki i katalogi 440
- OsStr i Path 440
- Metody typów Path i PathBuf 442
- Funkcje dostępu do systemu plików 443
- Odczyt zawartości katalogu 444
- Funkcje bezpośrednio związane z platformą 446
- Obsługa sieci 447
19. Programowanie współbieżne 451
- Podział i łączenie wątków 453
- spawn i join 454
- Obsługa błędów w różnych wątkach 456
- Współdzielenie niemutowalnych danych przez różne wątki 457
- Rayon 459
- Zbiór Mandelbrota raz jeszcze 461
- Kanały 463
- Wysyłanie wartości 464
- Odczyt wartości 467
- Uruchomienie potoku 468
- Cechy kanałów i ich wydajność 470
- Bezpieczeństwo wątków: Send i Sync 472
- Współpraca iteratora i kanału 474
- Potoki i co dalej? 475
- Stan współdzielony mutowalny 476
- Czym jest muteks? 476
- Mutex
478 - mut i Mutex 480
- Dlaczego Mutex to nie zawsze dobry pomysł? 480
- Zakleszczenie (deadlock) 481
- Zatruty muteks 482
- Kanały z wieloma nadawcami stosujące muteksy 482
- Blokady odczytu/zapisu (RwLock
) 483 - Zmienne warunkowe (Condvar) 485
- Typy atomowe 485
- Zmienne globalne 487
- Rust i pisanie programów wielowątkowych 489
20. Makra 491
- Podstawy 492
- Rozwijanie makra 493
- Niezamierzone skutki 495
- Powtórzenia 496
- Makra wbudowane 498
- Debugowanie makr 499
- Makro json! 500
- Typy składników 501
- Makra a rekurencja 504
- Makra i zestawy metod 505
- Zakres i higiena 507
- Import i eksport makr 509
- Unikanie błędów składniowych w procesie dopasowywania 511
- macro_rules! i co dalej? 512
21. Kod niebezpieczny 513
- Dlaczego niebezpieczny? 514
- Bloki unsafe 515
- Przykład: skuteczny typ łańcucha znaków ASCII 516
- Funkcje unsafe 518
- Kod niebezpieczny czy funkcja niebezpieczna? 520
- Niezdefiniowane zachowanie 521
- Zestawy metod unsafe 523
- Wskaźniki niechronione 525
- Bezpieczne tworzenie dereferencji wskaźników niechronionych 528
- Przykład: RefWithFlag 529
- Wskaźniki dopuszczające wartość pustą 531
- Rozmiary i rozmieszczanie typów 531
- Operacje arytmetyczne na wskaźnikach 532
- Wchodzenie do pamięci i wychodzenie z pamięci 534
- Przykład: GapBuffer 537
- Bezpieczeństwo błędów paniki w kodzie niebezpiecznym 543
- Funkcje obce: wywoływanie kodu C i C++ w środowisku Rusta 544
- Wyszukiwanie wspólnych reprezentacji danych 544
- Deklarowanie obcych funkcji i zmiennych 547
- Korzystanie z funkcji i bibliotek 549
- Interfejs niechroniony dla biblioteki libgit2 552
- Interfejs bezpieczny dla biblioteki libgit2 558
- Podsumowanie 568
Skorowidz 569
- Tytuł: Programowanie w języku Rust. Wydajność i bezpieczeństwo
- Autor: Jim Blandy, Jason Orendorff
- Tytuł oryginału: Programming Rust: Fast, Safe Systems Development
- Tłumaczenie: Adam Bochenek, Krzysztof Sawka
- ISBN: 978-83-283-5741-9, 9788328357419
- Data wydania: 2019-11-05
- Format: Ebook
- Identyfikator pozycji: prrust
- Wydawca: Helion