Just a runnable solution
Code\n\nimpl Solution {\n    pub fn number_of_unique_good_subsequences(binary: String) -> i32 {\n        let mod_num = 1_000_000_007;\n        let mut dp = vec!
# Code\n```\nimpl Solution {\n    pub fn number_of_unique_good_subsequences(binary: String) -> i32 {\n        let mod_num = 1_000_000_007;\n        let mut dp = vec![0, 0];\n        for c in binary.chars() {\n            dp[c as usize - \'0\' as usize] = (dp[0] + dp[1] + c as usize - \'0\' as usize) % mod_num;\n        }\n        ((dp[0] + dp[1] + (binary.find(\'0\').is_some()) as usize) % mod_num) as _\n    }\n}\n```
['Rust']