לדלג לתוכן

1.2 - טיפוסים מספריים וזרימת ערכים בתוכנית - תרגול

תרגול חישוב גודל הודעה

כתבו פונקציה המקבלת count: u32 ו־record_size: u32, ומחזירה Option<usize>. ההודעה כוללת כותרת באורך 16 בייטים ואת כל הרשומות. קבלו רק הודעה שאורכה הכולל אינו גדול ממגה־בייט אחד.

בדקו בנפרד גלישה בכפל, גלישה בחיבור, המרה ל־usize וחריגה ממגבלת היישום. אסור להשתמש ב־as כדי לעקוף המרה שנכשלת. הוסיפו בדיקות למספר רשומות אפס, הודעה רגילה, גודל שנמצא בדיוק בגבול, גודל מעל הגבול וערכים גדולים מאוד.

הסבירו האם מותר להחזיר גודל חוקי כאשר record_size הוא אפס. קבעו מדיניות וכתבו אותה ליד הפונקציה, במקום להניח שהתשובה נובעת מסוג המשתנה.