use std::collections::HashMap; pub fn popular_names() -> HashMap<&'static str, &'static str> { let mut m = HashMap::new(); // ===== MESSIER OBJECTS ===== // Nebulae & Star Forming Regions m.insert("M1", "Crab Nebula"); m.insert("M8", "Lagoon Nebula"); m.insert("M16", "Eagle Nebula"); m.insert("M17", "Omega Nebula"); m.insert("M20", "Trifid Nebula"); m.insert("M27", "Dumbbell Nebula"); m.insert("M42", "Orion Nebula"); m.insert("M43", "De Mairan's Nebula"); m.insert("M45", "Pleiades"); m.insert("M57", "Ring Nebula"); m.insert("M78", "McNeil's Nebula Area"); m.insert("M97", "Owl Nebula"); // Galaxies m.insert("M31", "Andromeda Galaxy"); m.insert("M33", "Triangulum Galaxy"); m.insert("M51", "Whirlpool Galaxy"); m.insert("M63", "Sunflower Galaxy"); m.insert("M64", "Black Eye Galaxy"); m.insert("M74", "Phantom Galaxy"); m.insert("M77", "Cetus Galaxy"); m.insert("M81", "Bode's Galaxy"); m.insert("M82", "Cigar Galaxy"); m.insert("M83", "Southern Pinwheel Galaxy"); m.insert("M86", "Markarian's Chain"); m.insert("M87", "Virgo A"); m.insert("M94", "Cat's Eye Galaxy"); m.insert("M95", "Leo Galaxy"); m.insert("M96", "Leo Galaxy II"); m.insert("M101", "Pinwheel Galaxy"); m.insert("M104", "Sombrero Galaxy"); m.insert("M106", "Seyfert Galaxy"); m.insert("M108", "Surfboard Galaxy"); m.insert("M109", "Vacuum Cleaner Galaxy"); // Star Clusters m.insert("M3", "Canes Venatici Cluster"); m.insert("M5", "Rose Cluster"); m.insert("M13", "Hercules Cluster"); m.insert("M15", "Pegasus Cluster"); m.insert("M22", "Sagittarius Cluster"); m.insert("M35", "Gemini Cluster"); m.insert("M36", "Pinwheel Cluster"); m.insert("M37", "Salt-and-Pepper Cluster"); m.insert("M38", "Starfish Cluster"); m.insert("M44", "Beehive Cluster"); m.insert("M46", "Herschel's Wonder"); m.insert("M47", "NGC2422"); m.insert("M52", "Scorpion Cluster"); m.insert("M67", "King Cobra Cluster"); // NGC cross-references to Messier m.insert("NGC224", "Andromeda Galaxy"); m.insert("NGC598", "Triangulum Galaxy"); m.insert("NGC1952", "Crab Nebula"); m.insert("NGC1976", "Orion Nebula"); m.insert("NGC2068", "McNeil's Nebula Area"); m.insert("NGC5194", "Whirlpool Galaxy"); // ===== POPULAR NGC OBJECTS ===== // Nebulae & Star Forming Regions m.insert("NGC281", "Pac-Man Nebula"); m.insert("NGC457", "E.T. Cluster"); m.insert("NGC663", "Birthplace Cluster"); m.insert("NGC869", "Double Cluster h"); m.insert("NGC884", "Double Cluster χ"); m.insert("NGC1333", "Reflection Nebula"); m.insert("NGC1499", "California Nebula"); m.insert("NGC1931", "Milky Way Object"); m.insert("NGC2024", "Flame Nebula"); m.insert("NGC2237", "Rosette Nebula"); m.insert("NGC2244", "Rosette Cluster"); m.insert("NGC2264", "Christmas Tree Cluster"); m.insert("NGC2392", "Eskimo Nebula"); m.insert("NGC2403", "Caldwell 7"); m.insert("NGC3372", "Eta Carinae Nebula"); m.insert("NGC3603", "Horseshoe Nebula"); m.insert("NGC5128", "Centaurus A"); m.insert("NGC6210", "Turtle Nebula"); m.insert("NGC6302", "Bug Nebula"); m.insert("NGC6357", "War and Peace Nebula"); m.insert("NGC6369", "Little Ghost Nebula"); m.insert("NGC6720", "Ring Nebula"); m.insert("NGC6826", "Blinking Nebula"); m.insert("NGC6853", "Dumbbell Nebula"); m.insert("NGC6960", "Western Veil Nebula"); m.insert("NGC6992", "Eastern Veil Nebula"); m.insert("NGC6995", "Eastern Veil Nebula"); m.insert("NGC7000", "North America Nebula"); m.insert("NGC7009", "Saturn Nebula"); m.insert("NGC7027", "Giraffe Nebula"); m.insert("NGC7293", "Helix Nebula"); m.insert("NGC7380", "Wizard Nebula"); m.insert("NGC7635", "Bubble Nebula"); m.insert("NGC7662", "Blue Snowball"); m.insert("NGC7023", "Iris Nebula"); // Galaxies m.insert("NGC253", "Silver Coin Galaxy"); m.insert("NGC404", "Mirach's Ghost"); m.insert("NGC672", "Irregular Galaxy"); m.insert("NGC891", "Silver Sliver Galaxy"); m.insert("NGC925", "Triangulum Galaxy"); m.insert("NGC1023", "Lenticular Galaxy"); m.insert("NGC1097", "Spiral Galaxy"); m.insert("NGC1232", "Grand Design Galaxy"); m.insert("NGC1291", "Eridanus Galaxy"); m.insert("NGC1316", "Fornax A"); m.insert("NGC1365", "Great Barred Spiral"); m.insert("NGC1569", "Starburst Galaxy"); m.insert("NGC1672", "Seyfert Galaxy"); m.insert("NGC2683", "UFO Galaxy"); m.insert("NGC2841", "Spiral Galaxy"); m.insert("NGC3031", "Bode's Galaxy"); m.insert("NGC3034", "Cigar Galaxy"); m.insert("NGC3115", "Spindle Galaxy"); m.insert("NGC3379", "Leo I"); m.insert("NGC3628", "Hamburger Galaxy"); m.insert("NGC3627", "Spiral Galaxy"); m.insert("NGC4258", "Sunburst Galaxy"); m.insert("NGC4321", "Grand Design Galaxy"); m.insert("NGC4374", "Virgo A"); m.insert("NGC4395", "Spiral Galaxy"); m.insert("NGC4438", "Siamese Twins"); m.insert("NGC4472", "Eye Galaxy"); m.insert("NGC4486", "Giant Elliptical"); m.insert("NGC4535", "Lost Galaxy"); m.insert("NGC4565", "Needle Galaxy"); m.insert("NGC4621", "Spindle Galaxy"); m.insert("NGC4649", "Giant Elliptical"); m.insert("NGC5055", "Sunflower Galaxy"); m.insert("NGC5584", "Spiral Galaxy"); m.insert("NGC5907", "Splinter Galaxy"); m.insert("NGC6744", "Phantom Galaxy"); m.insert("NGC7331", "Deer Lick Galaxy"); // ===== POPULAR IC OBJECTS ===== m.insert("IC59", "Ghost of Cassiopeia"); m.insert("IC63", "Ghost of Cassiopeia Wing"); m.insert("IC342", "Hidden Galaxy"); m.insert("IC405", "Flaming Star Nebula"); m.insert("IC410", "Tadpoles Nebula"); m.insert("IC434", "Horsehead Nebula"); m.insert("IC443", "Jellyfish Nebula"); m.insert("IC1274", "IC 1274"); m.insert("IC1318", "Butterfly Nebula"); m.insert("IC1396", "Elephant Trunk Nebula"); m.insert("IC1848", "Soul Nebula"); m.insert("IC1805", "Heart Nebula"); m.insert("IC2118", "Witch Head Nebula"); m.insert("IC2177", "Seagull Nebula"); m.insert("IC4628", "Prawn Nebula"); m.insert("IC5070", "Pelican Nebula"); m.insert("IC5146", "Cocoon Nebula"); // ===== SHARPLESS EMISSION NEBULAE (SH2) ===== // Only including Sharpless objects with well-known popular names m.insert("Sh2-27", "Lambda Orionis"); m.insert("Sh2-101", "Tulip Nebula"); m.insert("Sh2-129", "Flying Bat Nebula"); m.insert("Sh2-132", "Lion Nebula"); m.insert("Sh2-155", "Cave Nebula"); m.insert("Sh2-308", "Dolphin Nebula"); m }