stanford-oval/wikipedia huggingface dataset:
Venance Zézé

| 0 | 1 | 2 | 3 |
| --- | --- | --- | --- |

Henkilötiedot
Syntymäaika: 17. kesäkuuta 1981 (ikä 43)
Syntymäpaikka: Abidjan, Norsunluurannikko
Pelipaikka: hyökkääjä
Pituus: 170 cm
Lempinimi: Zézéto
Seura
Seura:  Haka
Pelinumero: 25
Junioriseurat
:  ASEC Mimosas
Seurat
| Vuodet | Seura | O | (M) |
| 2001–2003 |  Beveren | 60 | (18) |
| 2003–2006 |  Gent | 29 | (4) |
| 2004–2005 | →  Brussels (laina) | 25 | (1) |
| 2005–2006 | →  Beveren (laina) | 19 | (3) |
| 2006–2007 |  Metalurh Donetsk | 24 | (3) |
| 2007–2010 |  Metalist | 51 | (6) |
| 2010 | →  Jaro (laina) | 24 | (7) |
| 2011 |  Jaro | 21 | (3) |
| 2012 |  AC Oulu | 22 | (6) |
| 2013– |  Haka | 28 | (9) |
| Yhteensä | Yhteensä | 303 | (60) |
Maajoukkue
| 2000–2001 |  Norsunluurannikko | 7 | (1) |
 Seurajoukkueuran tilastot kattavat vain kansalliset sarjat, päivitetty 17. kesäkuuta 2014.
Venance Zézé (s. 17. kesäkuuta 1981 Abidjan, Norsunluurannikko) on norsunluurannikkolainen jalkapalloilija. Pelipaikaltaan hän on hyökkääjä, joka pelaa useimmiten oikealla laidalla.
Seurajoukkueet

Zézé on ASEC Mimosasin akatemian kasvatti. Euroopassa hänen ensimmäinen seurajoukkueensa oli Belgian KSK Beverenin vuonna 2001. Hän pelasi Belgiassa myös KAA Gentin ja FC Brusselsin joukkueissa. Pääsarjaotteluita kertyi viiden kauden aikana yhteensä 133, joissa hän teki 26 maalia. Belgiasta Zézé siirtyi Ukrainaan Metalurh Donetskiin talvella 2006, josta hän siirtyi kesällä 2007 lainalle Metalist Harkovan joukkueeseen. Puolen vuoden lainan jälkeen Metalist teki siirrosta pysyvän käyttämällä sopimuksessa olleen osto-option. Zézé pelasi neljän kauden aikana yhteensä 75 Ukrainan liigan ottelua, joissa syntyi yhdeksän maalia.
Kaudeksi 2010 Zézé siirtyi lainalle FF Jaroon. Toisen kauden jälkeen siirrosta tehtiin pysyvä ja hän pelasi kahden kauden aikana yhteensä 45 liigaottelua ja teki 10 maalia. Zézén sopimus Jaron kanssa päättyi syyskuussa 2011, kun seura purki sopimuksen Zézén lyötyä joukkuekaveriaan kasvoihin FF Jaro - KuPS ottelun tauolla. Toukokuussa 2012 Zézé teki loppukauden kattavan sopimuksen AC Oulun kanssa.. Zézé pelasi AC Oulun riveissä 22 ottelussa, joissa hän teki yhteensä 6 maalia. Helmikuussa 2013 Zézé siirtyi yhden vuoden sopimuksella Hakaan.
Maajoukkue

Zézé on pelannut seitsemän maaottelua Norsunluurannikon maajoukkueessa 2000–2001.
Aiheesta muualla

Venance Zézé Sinitähtien sivuilla
Tikaripyrstöt

| Tikaripyrstöt |
| --- | --- |
 Eurypterus remipes  -meriskorpioni
Tieteellinen luokittelu
Kunta::  Eläinkunta Animalia
Pääjakso::  Niveljalkaiset Arthropoda
Alajakso::  Leukakoukulliset Chelicerata
Yläluokka::  Tikaripyrstöt Merostomata  Dana, 1852
Luokat
 † Meriskorpionit (Eurypterida)  Molukkiravut (Xiphosura) 
Katso myös
   Tikaripyrstöt Wikispeciesissä   Tikaripyrstöt Commonsissa 
Infobox OKNimi-testi OK: 
Tikaripyrstöt (Merostomata) on leukakoukullisiin niveljalkaisiin kuuluva, enimmäkseen fossiileista tunnettu eläinryhmä, joka on lähinnä sukua hämähäkkieläimille. Siihen on aiemmin luettu kaksi vedessä elävien eläinten lahkoa (nyk. luokkaa):
Meriskorpionit (Eurypterida), jotka muistuttivat ulkonäöltään nykyisiä skorpioneja. Ne kukoistivat siluurikaudella (noin 450–400 miljoonaa vuotta sitten) ja hävisivät sitä seuranneella devonikaudella. Tähän ryhmään kuuluivat suurimmat tunnetut koskaan eläneet niveljalkaiset.
Molukkiravut (Xiphosura), joita tunnetaan neljä nykyisin elävää lajia. Näitä pidetään elävinä fossiileina.
Koska meriskorpionit ja molukkiravut eivät nykytiedon mukaan muodosta monofyleettistä ryhmää, vaan meriskorpionit ovat pikemmin lähempänä hämähäkkieläimiä, on tikaripyrstöjen Merostomata-luokasta taksonomisena yksikkönä luovuttu, ja meriskorpionit ja molukkiravut katsotaan nyttemmin yleensä itsenäisiksi luokiksi leukakoukullisten alajaksossa.
HMD Global

| HMD Global Oy |
| --- | --- |

Tunnuslause:  The Home of Nokia Phones
Yritysmuoto:  osakeyhtiö
Perustettu:  Helsinki (18. toukokuuta 2016)
Toimitusjohtaja:  Jean-Francois Baril
Kotipaikka:  Helsinki, pääkonttori Espoossa
Toimiala:  elektroniikkateollisuus
Tuotteet:  matkapuhelimet älypuhelimet taulutietokoneet
Liikevaihto:  1 200 milj. € (2021)
Liikevoitto:  –35,8 milj. € (2021)
Kotisivu:  www.hmd.com
Infobox OKVirheellinen NIMI-arvo: 
HMD Global (Human Mobile Devices) on suomalainen yritys, jolle on lisensoitu Nokian tavaramerkki. Yhtiö perustettiin alun perin valmistamaan Nokia-puhelimia ja sen pääkonttori sijaitsee Espoon Leppävaarassa. Nykyään HMD valmistaa Nokia-laitteiden lisäksi myös HMD-brändiä kantavia laitteita.
Laitteita valmistetaan ympäri maailmaa useiden eri tehtaiden toimesta. Nokia XR21 Europe Edition ja HMD XR21 valmistetaan Unkarissa.
HMD Global julkisti ensimmäiset HMD-brändin laitteet vuoden 2024 ensimmäisellä puoliskolla.
Historia

HMD Global ilmoitti joulukuussa 2016 käynnistävänsä varsinaisen liiketoiminnan ja suunnittelevansa ensimmäisten puhelinmallien lanseerausta vuoden 2017 ensimmäisellä puoliskolla. Yhtiöllä on kymmenen vuoden ajan maailmanlaajuinen yksinoikeus Nokia-brändin käyttöön matkapuhelimissa ja tableteissa. HMD Global perustettiin startup-yrityksenä.
Yhtiö julkisti ensimmäisen Nokia-merkkisen puhelimensa 8. tammikuuta 2017. Nokia 6 -nimisessä puhelimessa on Android-käyttöjärjestelmä ja se on suunnattu Kiinan markkinoille. Nokia 3 -puhelin tuli Suomessa kauppoihin ensimmäisenä kesäkuussa 2017 ja vain viikko sen jälkeen Nokia 5- ja Nokia 6 -puhelimet.
Ensimmäisenä tilikautenaan 2016 HMD Global teki tappiota yli puolet liikevaihdostaan.
Elokuussa 2017 yhtiö ilmoitti uuden lippulaivapuhelimen Nokia 8:n tulosta markkinoille. Nokia 8 on saanut varsin positiivisen arvostelun ja monet suomalaiset ovat ostaneet sen "isänmaallisena tekona". Iltalehti kirjoitti, että Nokia on nyt noussut jälleen viiden suurimman puhelinvalmistajan joukkoon. Arvioiden mukaan HMD Global myi vuonna 2017 noin 8 miljoonaa Nokia älypuhelinta. Vuoden 2017 viimeisellä neljänneksellä markkinaosuus oli prosentin luokkaa maailmanlaajuisesti.
Nokia-puhelinten slogan on Unite For.
Tammikuussa 2018 ilmoitettiin Asha-brändin siirtyneen HMD Globalin omistukseen.
Toukokuussa 2018 HMD Global keräsi rahoitusta 100 miljoonaa Yhdysvaltain dollaria älypuhelinten myynnin ripeään kasvattamiseen.
Vuonna 2018 HMD Global oli Länsi-Euroopan neljänneksi suurin älypuhelinten toimittaja. HMD Global toimitti lähes viisi miljoonaa älypuhelinta kvartaalissa.
Yrityksen vanhemmat puhelimet olivat väliaikaisesti myyntikiellossa tietyissä Euroopan maissa yrityksen hävittyä patenttikiistan Enhanced Voice Service (EVS) -tekniikasta. HMD Global poisti EVS-tuen, joka ei ole välttämätön, ja on saanut puhelimet jälleen myyntiin kyseisissä maissa.
Vuonna 2024 yritys esitteli ensimmäiset puhelimet omalla brändillään ilman Nokian nimeä. Puhelimet ovat HMD Pulse, Pulse+ ja Pulse Pro -mallit, sekä HMD Skyline ja HMD Fusion. Yhdysvalloissa yritys julkaisi HMD Vibe -puhelimen. Intiassa yritys julkaisi HMD Crest- ja HMD Crest Max -puhelimet.
Tuotteet

HMD 105
HMD 105 4G
HMD 110
HMD 110 4G
HMD Aura
HMD Barbie Flip Phone
HMD Crest
HMD Crest Max
HMD Fusion
HMD Pulse
HMD Pulse+
HMD Pulse Pro
HMD Skyline
HMD T21 -taulutietokone
HMD Vibe
HMD XR21
Nokia 1
Nokia 1 Plus
Nokia 1.3
Nokia 1.4
Nokia 2
Nokia 2.1
Nokia 2.2
Nokia 2.3
Nokia 2.4
Nokia 3
Nokia 3.1
Nokia 3.1 Plus
Nokia 3.2
Nokia 3.4
Nokia 4.2
Nokia 5
Nokia 5.1
Nokia 5.1 Plus
Nokia 5.3
Nokia 5.4
Nokia 6
Nokia 6 (2018)
Nokia 6.1
Nokia 6.1 Plus
Nokia 6.2
Nokia 7
Nokia 7 Plus
Nokia 7.1
Nokia 7.2
Nokia 8
Nokia 8 Sirocco
Nokia 8.1
Nokia 8.3 5G
Nokia 9 Pureview
Nokia 105 (2017)
Nokia 105 (2019)
Nokia 105 4G
Nokia 106 (2018)
Nokia 110 (2019)
Nokia 110 4G
Nokia 125
Nokia 130 (2017)
Nokia 130 (2023)
Nokia 150
Nokia 150 (2020)
Nokia 150 (2023)
Nokia 210
Nokia 215 4G
Nokia 215 4G (2024)
Nokia 216
Nokia 220 4G
Nokia 220 4G (2024)
Nokia 222
Nokia 225 4G
Nokia 225 4G (2024)
Nokia 230 (2024)
Nokia 235 4G
Nokia 800 Tough
Nokia 2660 Flip
Nokia 2720 Flip
Nokia 3210 (2024)
Nokia 3310 (2017)
Nokia 3310 3G
Nokia 5310 (2020)
Nokia 5310 (2024)
Nokia 5710 XpressAudio
Nokia 6300 4G
Nokia 6310 (2021)
Nokia 6310 (2024)
Nokia 8000 4G
Nokia 8110 4G
Nokia 8210 4G
Nokia C02
Nokia C1
Nokia C2
Nokia C10
Nokia C12
Nokia C20
Nokia C21
Nokia C22
Nokia C30
Nokia C31
Nokia C32
Nokia C210
Nokia G10
Nokia G11
Nokia G20
Nokia G21
Nokia G22
Nokia G42
Nokia G50
Nokia G60
Nokia G310
Nokia T10 -taulutietokone
Nokia T20 -taulutietokone
Nokia T21 -taulutietokone
Nokia X10
Nokia X20
Nokia XR20
Nokia XR21
Nokia X30
Nokia X71
Aiheesta muualla

Wikimedia Commonsissa on kuvia tai muita tiedostoja aiheesta .
HMD Global
| n k HMD Globalin matkapuhelimet |
| --- | --- |
HMD-älypuhelimet:  105  110  Aura  Crest  Crest Max  Pulse  Pulse+  Pulse Pro  Skyline  Vibe  XR21 
Nokia-älypuhelimet:  1  1 Plus  1.3  1.4  2  2.1  2.2  2.3  2.4  3  3.1  3.1 Plus  3.2  3.4  4.2  5  5.1  5.1 Plus  5.3  5.4  6  6 (2018)  6.1  6.1 Plus  6.2  7  7.1  7.2  7 Plus  8  8 Sirocco  8.1  8.3 5G  9 Pureview  C02  C1  C2  C10  C12  C20  C21  C22  C30  C31  C32  C210  G10  G11  G20  G21  G22  G42  G50  G60  G310  X10  X20  XR20  XR21  X30  X71 
Nokia-peruspuhelimet:  105 (2017)  105 (2019)  105 (2023)  106 (2018)  106 (2023)  110 (2019)  110 (2023)  125  130 (2017)  130 (2023)  150  150 (2020)  150 (2023)  210  215 4G  215 4G (2024)  216  220 4G  220 4G (2024)  222  225 4G  230 (2024)  235 4G  800 Tough  2660 Flip  2720 Flip  3210 (2024)  3310 (2017)  3310 3G  5310 (2020)  5310 (2024)  5710 XpressAudio  6300 4G  6310 (2021)  6310 (2024)  8000 4G  8110 4G  8210 4G 
HMD:n aikaisempi logo (2016–2024)
Rust (ohjelmointikieli)

| Rust |
| --- | --- |

Paradigma:  moniparadigma, funktionaalinen, imperatiivinen
Tyypitys:  staattinen, vahva
Yleinen suoritusmalli:  käännettävä
Muistinhallinta:  RAII
Julkaistu:  2010
Kehittäjä:  Graydon Hoare, Rust -projektin kehittäjät
Vakaa versio:  1.83.0 (28. marraskuuta 2024)
Merkittävimmät toteutukset:  Rust
Vaikutteet:  C++
Käyttöjärjestelmä:  Android, FreeBSD, iOS, Linux, macOS, Windows
Verkkosivu:  Rust Language
Rust on ohjelmointikieli, jonka on kehittänyt Mozilla Foundation. Rust on suunniteltu suorituskykyiseksi järjestelmätason ohjelmointikieleksi, joka välttäisi tyypillisten C- tai C++-ohjelmien muistinhallintaan liittyvät virhetilat. Sen syntaksi muistuttaa C-kieltä, mutta muuten eroaa siitä ominaisuuksiltaan. Rust sisältää muun muassa nimiavaruudet, rinnakkainajon, sulkeumat ja tyypinpäättelyn.
Muista moderneista ohjelmointikielistä poiketen Rust toteuttaa muistinhallinnan turvallisuuden ajoajan sijaan kielen syntaksissa ja ohjelman kääntämisen aikana, mikä tarkoittaa lisää rajoituksia ohjelmoijalle, mutta enemmän nopeutta ohjelman ajoon, jotta tehossa ei hävittäisi perinteisille ohjelmointikielille. Lisäksi Rustissa on pyritty kehittämään turvallisuutta myös ohjelman säikeiden kilpailutilanteiden suhteen. Toisaalta Rust erottuu monista muista moderneista kielistä siten, että siinä on mahdollista myös halutessaan ohittaa turvallisuusmekanismit ja käyttää esimerkiksi osoitinmuuttujia vapaasti. lähde?
Rust on käännettävä kieli, joka tukee Unicode-merkistöä. lähde? Rustin käyttöön liittyen sen ohjelmointikielen kääntäjä ilmoittaa virheet tarkasti ja perusteellisesti verrattuna C- ja C++-kieliin, mikä helpottaa ohjelmointivirheiden korjaamista. Rustin kääntäjä myös jossain määrin tarjoutuu avustamaan virheiden korjaamisessa. Rust sisältää myös sisäänrakennetun valmiuden yksikkötestaamiselle.
Ominaisuudet

Rust tarjoaa korkean abstraktiotason kielen ominaisuudet matalalla prosessointitasolla. Rustin päämäärinä ovat turvallisuus, nopeus ja rinnakkaisuus. Rustilla voidaan kirjoittaa käyttöjärjestelmiä, laiteajureita ja se voidaan sulauttaa toisiin ohjelmiin. Tärkeitä alueita rustille ovat myös pelikehitys ja webpalvelut. lähde?
Ominaisuudet > Muistinhallinta

Rust ratkaisee muistinhallinnan ongelmat käyttämällä datan omistajan, lainaamisen ja turvattoman (unsafe) käsitteitä. Tämä mahdollistaa automaattista roskienkeruutakin paremmat ominaisuudet: deterministisen muistivapautuksen, ei kilpailutilanteita (data race) ja iteroijien tarkistus (ei muokata ja viitata samanaikaisesti). lähde?
Rust-ohjelmien muistialue koostuu kahdesta alueesta: pino ja keko (stack, heap) – aivan kuten C-kielessäkin. Pinossa olevat muuttujat omistaa joku keossa oleva laatikko (box). Laatikoiden omistamia muuttujia, tavaroita (items), voi vaihdella funktioiden kesken jos ne ovat muuttumattomia (static). Muuttuvien muuttujien (avainsana mut) jakaminen on mahdollista lainaamalla niitä funktioilta tai säikeiltä toisille (borrowing). Nämä ratkaisut mahdollistavat turvallisen rinnakkaisajon ja estävät segmentaatiovirheet, jotka C-kielessä johtuvat luvattomien muistialueiden käsittelystä. lähde?
Turvattoman (unsafe) muistihallinnan kautta rust-ohjelmat voivat kommunikoida toisten järjestelmäprosessien ja eri kielellä kirjoitettujen ohjelmien kanssa ilman ristiriitoja, ja tarvittaessa rikkoa omistukseen liittyviä sääntöjä. lähde?
Jokaisella arvolla on Rustissa yksi omistaja kullakin hetkellä. Kun omistaja katoaa näkyvistä, arvo pudotetaan pois. Kekomuistissa pidettyä tietoa ei koskaan kopioida ilman clone()-metodin käyttöä. Muuttujat eivät voi viitata samaan kekomuistissa olevaan tietoon; vain viimeisimpänä määritelty muuttuja on voimassa. Muuttujan sijoittaminen funktioon siirtää arvon omistajuuden funktiolle eli muuttuja katoaa näkyvistä. Jos omistajuutta ei haluta siirtää, käytetään muuttujan referenssiä (&x, x: &Y) eli lainataan. Referoimisen vastaoperaatio on dereferointi *x. Yhteen arvoon voi olla yhdessä näkymässä vain yksi muuntamisen salliva referenssi (&mut x). (Metodeissa Rust tekee automaattisen referoinnin ja dereferoinnin.) Tietorakenteiden kuten tietueiden arvojen on oltava voimassa yhtä kauan kuin koko kokoelmakin – tämä on mahdollista elinaikojen avulla.
Elinaikojen avulla referenssit ovat voimassa niin kauan kuin niitä tarvitaan. Elinaika määritellään tarvittaessa syntaksilla &'a Tyyppi, fn nimi<'a>(x: &'a Tyyppi) -> &'a Tyyppi { ... }, struct Nimi<'a> { x: &'a Tyyppi, } ja impl<'a> Tyyppi<'a> { ... }. Tätä tarvitaan, kun käytetään referenssejä eikä kääntäjällä ole tarpeeksi informaatiota varmistaa, että elinajat riittävät. 'static tarkoittaa, että referenssi voi elää koko ohjelman ajon ajan.
Tavallisten referenssien (osoittimien) lisäksi Rustissa voidaan käyttää älyosoittimia, joista tavallisimpia ovat standardikirjaston Box<T> (kekomuistiallokaatio), Rc<T> (referenssien laskentaan perustuva moniomistajuus) ja RefCell<T> (lainaussääntöjen ajonaikainen tarkistus).
Ominaisuudet > Moduulit

Rust-ohjelmat organisoidaan paketteihin, laatikoihin (engl. crate) ja moduuleihin. Paketti ei ole varsinaisesti Rustin vaan sen apuohjelman Cargon ominaisuus – paketti muodostuu useista laatikoista, joista yhden on oltava kirjasto. Laatikot ovat kirjastoja tai ajotiedostoja, jotka muodostuvat moduulipuusta. Rust-kääntäjälle kaikki lähdetiedostot ovat laatikoita, mutta yleensä laatikolla tarkoitetaan kirjastolaatikkoa (ei ajotiedostolaatikkoa). Moduulit ovat nimiavaruuksia, joiden avulla ohjelman alkioita ja niiden näkyvyyttä organisoidaan. Moduulin alkiot kuten funktiot (ja alimoduulit) nimetään moduulipolun mukaan tyylillä laatikko::moduuli::funktio. Alkiot ovat oletuksena yksityisiä eli käytettävissä vain oman moduulinsa sisällä.
Moduuleja käytetään seuraavan syntaksin avulla:
mod x { ... } määrittelee uuden moduulin
use laatikko::moduuli::moduuli as mdl; tuo moduulin näkymään niin, ettei koko polkua ole tarpeen käyttää vaan mdl::funktio riittää
use laatikko::moduuli{self, moduuli::alkio, moduuli, alkio}; tuo näkymään neljä polkua samalla lauseella
pub tekee moduuleista, alkioista tai kentistä käytettäviä moduulin ulkopuolella (julkistettava yksitellen)
pub use ...; tekee siis näkymään tuodusta polusta julkisen
Ominaisuudet > Rinnakkaisohjelmointi

Rinnakkaiseen ja asynkroniseen ohjelmointiin löytyy tukea erityisesti Rustin standardikirjastosta. Esimerkiksi std::thread::spawn ajaa annetun sulkeuman uudessa säikeessä ja palauttaa kahvan, jonka join-metodilla voidaan odottaa säikeen valmistumista. Referenssien elinaika on epäselvä asynkronisessa ajossa, joten annetun sulkeuman on omistettava ympäristöstään kaappaamansa arvot – tämä onnistuu syntaksilla move || println!(x);. Viestien välitys säikeiden välillä onnistuu standardikirjaston std::sync::mpsc::channel-funktion avulla. Myös muistin jakaminen säikeiden välillä onnistuu std::sync::Mutex- (lukko) ja std::sync::Arc-tietueen (moniomistajuus) avulla.
Ominaisuudet > Oliopohjainen ohjelmointi

Rustissa on vaikutteita olio-ohjelmoinnista, mutta se ei tue kaikkea olio-ohjelmoinnin määrittelyn mukaisia ominaisuuksia. Rust tukee tiedon ja toimintojen paketointia yhteen (metodit tai operaatiot), mutta se ei tue olio-ohjelmoinnin perintää. Määrittelystä riippuen Rust joko on tai ei ole olio-ohelmointia tukeva kieli.
Rustissa ei käytetä sanaa objekti tai olio, mutta tietueille ja luetteloille voidaan määritellä metodeja, mikä mahdollistaa olio-ohjelmoinnin kaltaisen ohjelmoinnin. Kapselointi onnistuu käyttämällä pub-avainsanaa niiden tietotyyppien ja metodien määritelmissä, jotka muodostavat kyseisen tietotyypin julkisen rajapinnan. Periminen ei ole mahdollista, mutta geneeriset tyypit ja piirteiden oletustoteutukset ja reunaehdot mahdollistavat vastaavia rakenteita. Näiden lisäksi abstraktimpi tapa on käyttää kokoelman tyyppinä Rustin piirreobjektia <Box<dyn Piirre>>, joka mahdollistaa erilaisten ja uusien tyyppien käsittelemisen samassa kokoelmassa ajon aikana – kunhan ne vain toteuttavat annetun piirteen (dyn-avainsana tulee sanasta dynaaminen). Tämä vastaa ankkatyypitystä – eli varsinaisella tyypillä ei ole väliä kunhan se toteuttaa tietyt metodit – mutta Rust-kääntäjä varmistaa jo käännösvaiheessa, että metodit ovat olemassa ennen niiden kutsumista. Tilaobjektimallin käyttö on mahdollista, mutta Rustissa on tyypillisempää esittää olioiden erilaiset tilat omina tyyppeinään, jolloin voidaan hyödyntää Rust-kääntäjän tyypintarkastusta.
Ominaisuudet > Funktionaalinen ohjelmointi

Sulkeumat ovat Rustin nimettömiä funktioita, jotka määritellään tyylillä |x| println!("{}-{}", x, y); ja voivat kaapata arvoja ympäristöstä, jossa ne on määritelty. Sulkeuma voidaan sijoittaa muuttujaan tai funktion argumentiksi arvojen tavoin. Jos sulkeuman tyyppejä ei merkitä, kääntäjä päättelee ja merkitsee ne ensin käytettyjen tyyppien mukaan. Sulkeuma voidaan myös palauttaa funktiosta, jos käytetään piirreobjektia Box<dyn Fn(T) -> T>.
Iteraattorit ovat tyyppejä, jotka palauttavat jokaisella next-metodin kutsulla uuden arvon, kunnes kaikki arvot on kulutettu. Mikä tahansa tyyppi voi olla iteroitava, jos sille on määritelty Iterator-piirre (Item-tyyppi ja next-metodi riittävät). Kun iteraattoria muutetaan muodosta toiseen, collect-metodilla (tai muulla ns. kuluttavalla metodilla) voidaan lopuksi kuluttaa se, eli esim. palauttaa iteraattorista haluttu vektorityypin rakenne (vektori.iter().map(sulkeuma).collect();).
Funktioita voidaan antaa argumentteina toisiin funktioihin, jotka on määritelty tyylillä fn nimi(f: fn(T) -> T, x: T) -> T { f(x) }.
Hahmonsovitus on Rustissa hyvin tavallista. Se onnistuu match-, if let-, while let-, for- ja let-lauseissa sekä funktioiden parametreissa. Hahmonsovitus mahdollistaa myös monikkojen, tietueiden ja luetteloiden destrukturoinnin tyylillä let (x, y) = (1, 2). Alaviivalla _ voidaan jättää osia hahmosta huomiotta ja ..-syntaksilla voidaan jättää kokonainen arvoväli jostakin kokoelmasta huomiotta.
Ominaisuudet > Metaohjelmointi

Makrot tuottavat koodia kääntämisvaiheessa ja toimivat kuin funktiot, mutta huomattavasti vapaammilla säännöillä. Deklaratiiviset makrot määritellään omalla syntaksillaan tyylillä macro_rules! nimi { hahmo => koodi } ja makro voi näin kaapata mitä tahansa tekstiä ja käyttää sitä tuottamaan mitä tahansa koodia. Proseduraaliset makrot ovat taas tavanomaisia Rust-funktioita, jotka manipuloivat saamansa Rust-koodin abstraktia syntaksipuuta. Makroja kutsutaan funktioiden tapaan tyylillä makro!... tai attribuutteina tyylillä #[makro(...)] ja #[derive(makro)].
Yleisiä makroja ovat
println!, joka kirjoittaa standarditulosteeseen
eprintln!, joka kirjoittaa standardivirheeseen
dgb!, joka kirjoittaa standardivirheeseen käyttämällä Debug-piirteen määrittelemää formaattia
assert_eq!, joka varmistaa yhtäläisyyden
format!, joka liittää muuttujien saamat arvot tekstiliteraaliin
panic!, joka pysäyttää ohjelman virheeseen
Ominaisuudet > Virheidenhallinta

Rustissa käsitellään virheitä yleensä luettelon enum Result<T, E> { Ok(T), Err(E), } ja hahmonsovituksen match avulla. Result-arvon voi käsitellä erityisen lyhyesti ?-operaattorin avulla tyylillä moduuli::funktio()?, jolloin tilanteessa Ok(arvo) lauseke palauttaa suoraan arvo. ?-operaattori on käytettävissä vain funktioissa, jotka palauttavat Result- tai vastaavan tyypin arvon. Toinen tavallinen tapa on käyttää Result-arvon unwrap_or_else-metodia, joka palauttaa arvon tai ajaa annetun sulkeuma. expect-metodi taas kutsuu virhetilanteessa suoraan panic!-makron, mikä on hyödyllistä ohjelman kehityksen alkuvaiheessa.
Ominaisuudet > Tietotyypit

Tietotyyppejä Rustissa ovat muun muassa
Kokonaisluvut muotoa i32 (oletus), isize, u64 ja literaalit 5, 10_000, 0b1010_0011
Liukuluku f32 ja f64 ja literaalit esim. 2. ja -24.55
Boolen tyyppi ja literaalit true ja false
Merkki char ja literaalit 't' (ei ")
Monikko esim. (1, 2.0, 'c') ((i32, f32, char))
Taulukko esim. [1, 2, 3] ([i32; 3]), millä on vakiopituus
Teksti String (muunnettava) ja literaalit "Hei, Wikipedia!" (muuttumaton)
Viipale &x[0..5] ("Hei, Wikipedia!" on myös viipale tyyppiä &str)
Tietue struct Nimi { nimi: String }, josta luodaan instanssi tyylillä Nimi { nimi: String::from("Arvo"), };
Monikkotietue struct Nimi(i32, String);, jonka kenttiä ei nimetä
Yksikkötietue struct Nimi;, jolla ei ole kenttiä
Luettelo enum Nimi { Variantti1(u8), Variantti(String, i32), }, josta voidaan tehdä instansseja tyylillä let x = Nimi::Variantti1(8);. Rustissa ei ole null-arvoa vaan puuttuvaa arvoa edustamaan käytetään tyyppiä enum Option<T> { None, Some(T), }.
Vektori Vec<T>, joka sisältää vaihtelevan pituisen, samaa tyyppiä olevan arvojonon. Instanssi voidaan luoda makrolla vec![1, 2, 3].
Hajautustaulu std::collections::HashMap
Piirreobjektit Box<dyn Error>
Geneeriset tyypit
None, Some, Option
Ok, Err, Result
Ominaisuudet > Geneeriset rakenteet

Geneerisiä funktioita voidaan määritellä tyylillä fn nimi<T>(x: &T) -> &T { ... }, tietueissa struct Nimi<T> { x: T }, luetteloissa enum Nimi<T> { Tyyppi(T), } ja metodeissa impl<T> Nimi<T> { fn nimi(&self) -> &T { ... }. Geneerinen koodi laajennetaan automaattisesti spesifiseksi käännösvaiheessa (engl. monomorphization), joten nämä geneeriset tyypit eivät hidasta ohjelmaa.
Ominaisuudet > Piirteet

Piirteet (engl. traits) ovat Rustin tapa organisoida metodeja rajapinnoiksi. Ne määritellään tyylillä trait Piirre { fn metodi(&self) -> Tyyppi; ... }. Piirteeseen voidaan kirjoittaa oletustoteutus. Tyypille tehdään piirteen toteutus tyylillä impl Piirre for Tyyppi { ... } – tällöin Rust-kääntäjä huolehtii, että kaikki piirteeseen kuuluvat metodit tulevat määritellyksi. Piirteet toimivat kuin tyypit ja mahdollistavat geneeristen funktioiden kirjoittamisen kaikille tyypeille, jotka toteuttavat tietyn piirteen, tyylillä fn nimi(x: &impl Piirre) { ... } tai fn nimi<T, U>(x: &T, y: &U) -> impl Piirre4 where T: Piirre1 + Piirre2, U: Piirre3 { ... }. Samaan tapaan voidaan kirjoittaa geneeriselle tyypille metodeita (tai vastaava piirretoteutus) niin, että tämä koskee vain tietyt piirteet toteuttavia versioita, tyylillä impl<T: Piirre> Tyyppi<T> { ... }.
Tavallisia piirteitä ovat muun muassa
Display
Clone
Debug
Copy
ToString
Kirjastot

Rust Standard Library (RSL) on standardikirjasto, joka sisältää tärkeimmät ominaisuudet ohjelmointia varten. Moduulit sisältävät kirjastoja muistialueiden, primitiivityyppien, kokoelmien ja virheiden käsittelyyn, iterointiin, IO-operaatioihin, säikeistykseen ja prosessien hallintaan, sekä joukon makroja.