pub struct PascalsTriangle {
    row: u32,
}

impl PascalsTriangle {
    pub fn new(row_count: u32) -> Self {
        PascalsTriangle { row: row_count }
    }

    fn pascal(row: u32) -> Vec<u32> {
        let mut result = Vec::with_capacity(row as usize);

        result.push(1);

        for k in 0..row {
            let v = result[k as usize] * (row - k) / (k + 1);

            result.push(v);
        }

        result
    }

    pub fn rows(&self) -> Vec<Vec<u32>> {
        (0..self.row).map(PascalsTriangle::pascal).collect()
    }
}

pub struct PascalsTriangle;

impl PascalsTriangle {
    pub fn new(row_count: u32) -> Self {
        unimplemented!();
    }

    pub fn rows(&self) -> Vec<Vec<u32>> {
        unimplemented!();
    }
}

--- 
+++ 
@@ -1,11 +1,27 @@
-pub struct PascalsTriangle;
+pub struct PascalsTriangle {
+    row: u32,
+}
 
 impl PascalsTriangle {
     pub fn new(row_count: u32) -> Self {
-        unimplemented!();
+        PascalsTriangle { row: row_count }
+    }
+
+    fn pascal(row: u32) -> Vec<u32> {
+        let mut result = Vec::with_capacity(row as usize);
+
+        result.push(1);
+
+        for k in 0..row {
+            let v = result[k as usize] * (row - k) / (k + 1);
+
+            result.push(v);
+        }
+
+        result
     }
 
     pub fn rows(&self) -> Vec<Vec<u32>> {
-        unimplemented!();
+        (0..self.row).map(PascalsTriangle::pascal).collect()
     }
 }
Add rust code for pascals-triangle case

It passed all testcases
