MCPcopy Create free account
hub / github.com/hashintel/hash / try_map_failure

Function try_map_failure

libs/@local/hashql/core/src/intern/beef.rs:767–797  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

765
766 #[test]
767 fn try_map_failure() {
768 let heap = Heap::new();
769 let interner = InternSet::new(&heap);
770 let original = interner.intern_slice(&[1, 2, 3, 4, 5]);
771
772 // Fail on the third element
773 let mut beef = Beef::new(original);
774 let result: Result<(), &str> = beef.try_map(|x| {
775 if x == 3 {
776 Err("Error on value 3")
777 } else {
778 Ok(x * 10)
779 }
780 });
781 assert_eq!(result, Err("Error on value 3"));
782 // First two elements should be transformed
783 assert_eq!(beef.as_slice(), &[10, 20, 3, 4, 5]);
784
785 // Fail on the first element
786 let mut beef = Beef::new(original);
787 let result: Result<(), &str> = beef.try_map(|x| {
788 if x == 1 {
789 Err("Error on first element")
790 } else {
791 Ok(x)
792 }
793 });
794 assert_eq!(result, Err("Error on first element"));
795 // Should still be in interned state since no modifications happened
796 assert_eq!(beef.as_slice(), original.as_ref());
797 }
798
799 #[test]
800 fn try_map_empty_and_edge_cases() {

Callers

nothing calls this directly

Calls 4

ErrInterface · 0.85
OkInterface · 0.85
intern_sliceMethod · 0.80
try_mapMethod · 0.80

Tested by

no test coverage detected