Решение на Logging от Милен Дончев
Обратно към всички решения
Към профила на Милен Дончев
Резултати
- 4 точки от тестове
- 0 бонус точки
- 4 точки общо
- 3 успешни тест(а)
- 12 неуспешни тест(а)
Код
Лог от изпълнението
Compiling solution v0.1.0 (/tmp/d20190123-22631-19t0ony/solution)
Finished dev [unoptimized + debuginfo] target(s) in 5.05s
Running target/debug/deps/solution-2e785d603b538f71
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Running target/debug/deps/solution_test-29808948fb50ed3a
running 15 tests
test solution_test::test_automatic_flushing_when_buffer_limit_is_reached ... FAILED
test solution_test::test_automatic_flushing_when_zero_buffer_limit ... FAILED
test solution_test::test_basic_log ... ok
test solution_test::test_basic_push ... ok
test solution_test::test_cloning_a_logger_shares_a_buffer ... FAILED
test solution_test::test_cloning_a_logger_shares_their_io ... FAILED
test solution_test::test_erroring_io ... FAILED
test solution_test::test_flushing_the_buffer ... FAILED
test solution_test::test_logger_combinations ... FAILED
test solution_test::test_multilogger_logs_and_flushes_when_needed ... FAILED
test solution_test::test_multilogger_logs_to_several_ios ... FAILED
test solution_test::test_reordering_logs_in_buffer ... ok
test solution_test::test_reordering_logs_in_io ... FAILED
test solution_test::test_scoped_logger ... FAILED
test solution_test::test_scoped_logger_with_a_string_tag ... FAILED
failures:
---- solution_test::test_automatic_flushing_when_buffer_limit_is_reached stdout ----
thread 'solution_test::test_automatic_flushing_when_buffer_limit_is_reached' panicked at 'assertion failed: `(left == right)`
left: `3`,
right: `0`', tests/solution_test.rs:194:9
note: Run with `RUST_BACKTRACE=1` for a backtrace.
---- solution_test::test_automatic_flushing_when_zero_buffer_limit stdout ----
thread 'solution_test::test_automatic_flushing_when_zero_buffer_limit' panicked at 'assertion failed: `(left == right)`
left: `1`,
right: `0`', tests/solution_test.rs:210:9
---- solution_test::test_cloning_a_logger_shares_a_buffer stdout ----
thread 'solution_test::test_cloning_a_logger_shares_a_buffer' panicked at 'assertion failed: `(left == right)`
left: `["Second"]`,
right: `["First", "Second", "Third"]`', tests/solution_test.rs:154:5
---- solution_test::test_cloning_a_logger_shares_their_io stdout ----
thread 'solution_test::test_cloning_a_logger_shares_their_io' panicked at 'called `Option::unwrap()` on a `None` value', libcore/option.rs:355:21
---- solution_test::test_erroring_io stdout ----
thread 'solution_test::test_erroring_io' panicked at 'called `Option::unwrap()` on a `None` value', libcore/option.rs:355:21
---- solution_test::test_flushing_the_buffer stdout ----
thread 'solution_test::test_flushing_the_buffer' panicked at 'called `Option::unwrap()` on a `None` value', libcore/option.rs:355:21
---- solution_test::test_logger_combinations stdout ----
thread 'solution_test::test_logger_combinations' panicked at 'not yet implemented', src/lib.rs:215:9
---- solution_test::test_multilogger_logs_and_flushes_when_needed stdout ----
thread 'solution_test::test_multilogger_logs_and_flushes_when_needed' panicked at 'not yet implemented', src/lib.rs:174:9
---- solution_test::test_multilogger_logs_to_several_ios stdout ----
thread 'solution_test::test_multilogger_logs_to_several_ios' panicked at 'not yet implemented', src/lib.rs:174:9
---- solution_test::test_reordering_logs_in_io stdout ----
thread 'solution_test::test_reordering_logs_in_io' panicked at 'called `Option::unwrap()` on a `None` value', libcore/option.rs:355:21
---- solution_test::test_scoped_logger stdout ----
thread 'solution_test::test_scoped_logger' panicked at 'not yet implemented', src/lib.rs:215:9
---- solution_test::test_scoped_logger_with_a_string_tag stdout ----
thread 'solution_test::test_scoped_logger_with_a_string_tag' panicked at 'not yet implemented', src/lib.rs:215:9
failures:
solution_test::test_automatic_flushing_when_buffer_limit_is_reached
solution_test::test_automatic_flushing_when_zero_buffer_limit
solution_test::test_cloning_a_logger_shares_a_buffer
solution_test::test_cloning_a_logger_shares_their_io
solution_test::test_erroring_io
solution_test::test_flushing_the_buffer
solution_test::test_logger_combinations
solution_test::test_multilogger_logs_and_flushes_when_needed
solution_test::test_multilogger_logs_to_several_ios
solution_test::test_reordering_logs_in_io
solution_test::test_scoped_logger
solution_test::test_scoped_logger_with_a_string_tag
test result: FAILED. 3 passed; 12 failed; 0 ignored; 0 measured; 0 filtered out
error: test failed, to rerun pass '--test solution_test'
История (1 версия и 2 коментара)
Милен качи първо решение на 18.12.2018 16:34 (преди почти 7 години)
Мне. Да копираш данните от досегашния вектор в клонирания не ти помага със споделянето на данни оттук нататък.
Rc<RefCell<Vec<Wrapper>>>
щеше да ти свърши работа.Метода
try_flush
връщаio::Result
. В него ако имаш грешка, я връщаш. Въвflush
я печаташ на екрана, не тук.Отвъд това, не съм сигурен защо ползваш
get_mut
и дажеRc::clone
тук. Заслужава си да огледаш останалите решения и документацията на Rc и RefCell методите.