Решение на Logging от Димитър Луканов
Обратно към всички решения
Към профила на Димитър Луканов
Резултати
- 19 точки от тестове
- 0 бонус точки
- 19 точки общо
- 14 успешни тест(а)
- 1 неуспешни тест(а)
Код
Лог от изпълнението
Compiling solution v0.1.0 (/tmp/d20190123-22631-z5f34c/solution)
warning: unused import: `Duration`
--> src/lib.rs:1:26
|
1 | use std::time::{Instant, Duration};
| ^^^^^^^^
|
= note: #[warn(unused_imports)] on by default
warning: unused import: `std::fs::OpenOptions`
--> src/lib.rs:222:5
|
222 | use std::fs::OpenOptions;
| ^^^^^^^^^^^^^^^^^^^^
Finished dev [unoptimized + debuginfo] target(s) in 6.62s
Running target/debug/deps/solution-2e785d603b538f71
running 8 tests
test test_buffered_logger_auto_flushes_on_entry_overload ... Test
Test
Test
ok
test test_buffered_logger_clone_has_same_buffered_entries ... ok
test test_buffered_logger_flush_removes_entries ... ok
test test_buffered_logger_keeps_entries_sorted ... ok
test test_buffered_logger_try_flush_returns_err_on_failed_write ... ok
test test_buffered_logger_try_flush_returns_ok_on_successful_write ... Test
ok
test test_multi_logger ... [Second] Test2
[Second] Test3
ok
test test_scoped_logger ... ok
test result: ok. 8 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 ... ok
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 ... ok
test solution_test::test_cloning_a_logger_shares_their_io ... ok
test solution_test::test_erroring_io ... ok
test solution_test::test_flushing_the_buffer ... ok
test solution_test::test_logger_combinations ... ok
test solution_test::test_multilogger_logs_and_flushes_when_needed ... ok
test solution_test::test_multilogger_logs_to_several_ios ... ok
test solution_test::test_reordering_logs_in_buffer ... ok
test solution_test::test_reordering_logs_in_io ... ok
test solution_test::test_scoped_logger ... ok
test solution_test::test_scoped_logger_with_a_string_tag ... ok
failures:
---- 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
note: Run with `RUST_BACKTRACE=1` for a backtrace.
failures:
solution_test::test_automatic_flushing_when_zero_buffer_limit
test result: FAILED. 14 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out
error: test failed, to rerun pass '--test solution_test'
История (1 версия и 4 коментара)
Димитър качи първо решение на 18.12.2018 03:20 (преди почти 5 години)
Добре забелязано --
log
иflush
спокойно могат да се имплементират директно за trait-а.А ако
buffer_size
е 0? Тук гърми единствения тест,>=
вероятно щеше да оправи проблема.А защо не използваш директно това, което ти връща
pop
?Или би могъл да махнеш reverse-ването и да пробваш
drain
(не съм сигурен какви са performance характеристиките му):