import * as React from "react";
import type { IconProps, IconMetadata, IconComponent } from "../../types";

export const Rust: IconComponent = React.forwardRef<SVGSVGElement, IconProps>(
  function Rust(
    {
      color = "currentColor",
      fill,
      size = 24,
      strokeWidth,
      strokeLinecap,
      strokeLinejoin,
      strokeDasharray,
      opacity,
      className,
      ...props
    },
    forwardedRef,
  ) {
    return (
      <svg
        width={size}
        height={size}
        viewBox="0 0 24 24"
        fill="none"
        xmlns="http://www.w3.org/2000/svg"
        className={className}
        strokeWidth={strokeWidth}
        strokeLinecap={strokeLinecap}
        strokeLinejoin={strokeLinejoin}
        strokeDasharray={strokeDasharray}
        opacity={opacity}
        {...props}
        ref={forwardedRef}
      >
        <g clipPath="url(#undefined-clip0_2066_1153)">
          <path
            d="M23.4064 11.7169L22.4355 11.1154C22.4273 11.0209 22.4181 10.9267 22.4078 10.8324L23.2439 10.054C23.2856 10.0152 23.3168 9.96642 23.3343 9.91221C23.3518 9.85799 23.3551 9.80019 23.3438 9.74434C23.333 9.68842 23.3079 9.63624 23.271 9.59285C23.234 9.54946 23.1866 9.51632 23.1331 9.49663L22.0649 9.09859C22.0381 9.00613 22.01 8.9143 21.9812 8.82216L22.647 7.89773C22.6972 7.82807 22.7187 7.74172 22.7069 7.65664C22.6951 7.57156 22.6509 7.49431 22.5836 7.44098C22.5391 7.40562 22.4863 7.38214 22.4302 7.37273L21.3045 7.18963C21.2608 7.10485 21.2157 7.0208 21.1692 6.93752L21.6424 5.89823C21.6662 5.84632 21.6763 5.78918 21.6718 5.73225C21.6672 5.67533 21.6481 5.62052 21.6164 5.57305C21.5848 5.52556 21.5416 5.48698 21.4909 5.46099C21.4401 5.43501 21.3835 5.4225 21.3266 5.42466L20.1832 5.46452C20.1242 5.39059 20.064 5.31758 20.0027 5.24552L20.2658 4.13327C20.2791 4.07767 20.2778 4.01961 20.2622 3.96462C20.2467 3.90964 20.2173 3.85955 20.1769 3.81914C20.1365 3.77872 20.0864 3.74932 20.0314 3.73373C19.9764 3.71815 19.9184 3.71689 19.8628 3.73009L18.7502 3.99323C18.678 3.932 18.6049 3.87185 18.5309 3.8128L18.5708 2.66948C18.573 2.61253 18.5604 2.55599 18.5344 2.50527C18.5085 2.45455 18.4699 2.41134 18.4225 2.37977C18.375 2.34805 18.3202 2.32898 18.2633 2.32437C18.2064 2.31975 18.1493 2.32975 18.0974 2.35341L17.0601 2.82666C16.9763 2.7807 16.8922 2.73516 16.808 2.69113L16.6245 1.56548C16.6154 1.50933 16.592 1.45646 16.5566 1.41194C16.5212 1.36741 16.475 1.33274 16.4223 1.31123C16.3698 1.28937 16.3125 1.28133 16.256 1.2879C16.1994 1.29446 16.1455 1.31541 16.0994 1.34873L15.175 2.01441C15.0839 1.98548 14.9925 1.95763 14.9007 1.93105L14.5025 0.86284C14.4827 0.809433 14.4496 0.761991 14.4062 0.72504C14.3629 0.68809 14.3108 0.662863 14.2549 0.651768C14.1991 0.640822 14.1413 0.644254 14.0872 0.66174C14.033 0.679226 13.9842 0.710193 13.9453 0.751733L13.1668 1.58766C13.0725 1.57711 12.9781 1.5679 12.8836 1.56002L12.2821 0.586947C12.252 0.538407 12.21 0.498374 12.16 0.470656C12.1101 0.442939 12.0539 0.428457 11.9968 0.42859C11.88 0.42859 11.7734 0.48859 11.7137 0.586947L11.1121 1.55991C11.0176 1.56782 10.9232 1.57707 10.829 1.58766L10.0505 0.751733C10.0116 0.71016 9.96281 0.67917 9.90864 0.661681C9.85447 0.644193 9.79674 0.640781 9.74088 0.651768C9.68497 0.662798 9.63284 0.687999 9.58946 0.724958C9.54609 0.761916 9.51293 0.809393 9.49317 0.86284L9.09513 1.93105C9.00331 1.95752 8.91192 1.98527 8.82085 2.01441L7.89642 1.34873C7.85031 1.31534 7.7964 1.29435 7.73985 1.28779C7.68331 1.28122 7.62602 1.28929 7.57349 1.31123C7.52103 1.33299 7.47496 1.36773 7.43961 1.41219C7.40426 1.45665 7.3808 1.50936 7.37142 1.56538L7.18788 2.69102C7.10324 2.73495 7.01913 2.78016 6.93577 2.82655L5.89852 2.3533C5.84664 2.32964 5.78957 2.31962 5.73272 2.32419C5.67588 2.32877 5.62114 2.34778 5.57371 2.37944C5.52627 2.4111 5.48771 2.45435 5.46168 2.50509C5.43565 2.55583 5.423 2.61238 5.42495 2.66938L5.46481 3.81259C5.39088 3.87184 5.3177 3.93205 5.24538 3.99313L4.13292 3.72998C4.07732 3.71701 4.01935 3.71839 3.96443 3.73399C3.90952 3.74958 3.85947 3.77888 3.81899 3.81913C3.77856 3.85949 3.74913 3.90952 3.73351 3.96447C3.71789 4.01943 3.71659 4.07746 3.72974 4.13305L3.99074 5.24552C3.92971 5.31763 3.86971 5.39061 3.81074 5.46441L2.66731 5.42455C2.61041 5.42274 2.55397 5.4354 2.5033 5.46135C2.45262 5.48731 2.40937 5.52571 2.3776 5.57295C2.34585 5.62041 2.32676 5.6752 2.32215 5.73211C2.31753 5.78902 2.32755 5.84617 2.35124 5.89813L2.8246 6.93741C2.77852 7.02088 2.73299 7.10488 2.68895 7.18952L1.5632 7.37273C1.50706 7.3818 1.45419 7.40515 1.40967 7.44054C1.36514 7.47592 1.33046 7.52216 1.30895 7.5748C1.2872 7.62735 1.27922 7.68459 1.28579 7.74108C1.29235 7.79758 1.31323 7.85146 1.34645 7.89763L2.01224 8.82205C1.98299 8.91377 1.95513 9.00592 1.92867 9.09848L0.860453 9.49652C0.807097 9.51641 0.759713 9.54962 0.722805 9.59298C0.685896 9.63634 0.660689 9.68842 0.649577 9.74427C0.638465 9.80012 0.641818 9.85788 0.659317 9.91207C0.676817 9.96626 0.707882 10.0151 0.74956 10.0539L1.5856 10.8323C1.5751 10.9264 1.56588 11.0208 1.55795 11.1153L0.587024 11.7168C0.538427 11.7469 0.498347 11.7889 0.470606 11.8389C0.442865 11.8889 0.42839 11.9451 0.42856 12.0023C0.42856 12.1193 0.48856 12.2256 0.586917 12.2853L1.55785 12.8868C1.56577 12.9813 1.57499 13.0756 1.58549 13.1699L0.749453 13.9483C0.707798 13.9871 0.67675 14.0359 0.659259 14.0901C0.641767 14.1442 0.638412 14.202 0.649511 14.2578C0.660611 14.3136 0.685797 14.3657 0.722678 14.4091C0.759559 14.4524 0.806911 14.4856 0.860238 14.5056L1.92845 14.9037C1.95518 14.9962 1.98304 15.0883 2.01202 15.1801L1.34645 16.1044C1.29601 16.1742 1.27454 16.2609 1.28652 16.3461C1.2985 16.4314 1.34302 16.5088 1.41074 16.5619C1.45563 16.5973 1.50888 16.6206 1.56535 16.6294L2.6911 16.8126C2.7347 16.8974 2.78002 16.9814 2.82663 17.0647L2.35338 18.1018C2.32975 18.1537 2.31975 18.2108 2.32434 18.2676C2.32893 18.3244 2.34795 18.3791 2.3796 18.4266C2.41125 18.474 2.45449 18.5126 2.50521 18.5386C2.55594 18.5646 2.61247 18.5773 2.66945 18.5754L3.81052 18.5353C3.86977 18.6092 3.92999 18.6823 3.99106 18.7546L3.73017 19.8671C3.71702 19.9223 3.71831 19.98 3.7339 20.0346C3.7495 20.0892 3.77887 20.1389 3.8192 20.1789C3.85957 20.2193 3.90963 20.2487 3.96462 20.2643C4.0196 20.2799 4.07766 20.2811 4.13324 20.2678L5.24581 20.0068C5.31795 20.068 5.39106 20.128 5.46513 20.1868L5.42538 21.3301C5.42328 21.3871 5.43581 21.4436 5.46179 21.4943C5.48777 21.5451 5.52633 21.5883 5.57377 21.6198C5.62127 21.6515 5.67606 21.6705 5.73295 21.675C5.78985 21.6795 5.84695 21.6694 5.89885 21.6457L6.9361 21.1725C7.01956 21.2188 7.10356 21.264 7.1882 21.3081L7.37174 22.4336C7.38093 22.49 7.40431 22.5431 7.43967 22.588C7.47504 22.6329 7.52123 22.6681 7.57392 22.6902C7.62646 22.712 7.68372 22.7201 7.74025 22.7135C7.79678 22.707 7.85069 22.6861 7.89685 22.6528L8.82127 21.9871C8.91267 22.0162 9.00449 22.0444 9.0977 22.071L9.49585 23.1391C9.51571 23.1925 9.5489 23.2399 9.59226 23.2768C9.63563 23.3136 9.68771 23.3388 9.74356 23.3499C9.79941 23.361 9.8572 23.3577 9.9114 23.3402C9.96561 23.3227 10.0144 23.2916 10.0532 23.2499L10.8317 22.414C10.9257 22.4248 11.0204 22.4339 11.1148 22.4423L11.7164 23.4131C11.7462 23.4613 11.7879 23.5012 11.8374 23.5289C11.8869 23.5566 11.9427 23.5712 11.9995 23.5714C12.0565 23.5712 12.1125 23.5565 12.1624 23.5288C12.2123 23.5012 12.2544 23.4614 12.2848 23.4131L12.8863 22.4423C12.981 22.4339 13.0754 22.4248 13.1695 22.414L13.9478 23.2499C13.9866 23.2917 14.0354 23.3228 14.0896 23.3403C14.1438 23.3578 14.2016 23.3611 14.2575 23.3499C14.3134 23.3389 14.3655 23.3137 14.4089 23.2768C14.4522 23.2399 14.4854 23.1925 14.5052 23.1391L14.9033 22.071C14.9958 22.0444 15.0875 22.0162 15.1798 21.9871L16.1043 22.6528C16.1506 22.686 16.2047 22.7069 16.2613 22.7133C16.318 22.7198 16.3753 22.7116 16.4279 22.6897C16.4805 22.6677 16.5267 22.6327 16.5619 22.5879C16.5972 22.5431 16.6204 22.49 16.6293 22.4337L16.8128 21.3081C16.8978 21.264 16.9818 21.2183 17.065 21.1725L18.1022 21.6457C18.1541 21.6694 18.2112 21.6795 18.2681 21.675C18.325 21.6704 18.3799 21.6515 18.4274 21.6198C18.4747 21.5882 18.5132 21.5449 18.5391 21.4942C18.5651 21.4435 18.5777 21.3871 18.5758 21.3301L18.5359 20.1868C18.61 20.128 18.683 20.068 18.7551 20.0068L19.8676 20.2678C19.923 20.2809 19.9808 20.2797 20.0355 20.2642C20.0903 20.2488 20.1402 20.2196 20.1806 20.1795C20.2209 20.1394 20.2504 20.0897 20.2662 20.035C20.282 19.9803 20.2835 19.9225 20.2708 19.8671L20.0098 18.7547C20.0709 18.6825 20.1309 18.6094 20.1898 18.5353L21.3332 18.5754C21.3902 18.5775 21.4467 18.565 21.4975 18.539C21.5482 18.5131 21.5914 18.4745 21.6229 18.427C21.6547 18.3795 21.6738 18.3247 21.6784 18.2678C21.683 18.2109 21.6729 18.1537 21.6491 18.1018L21.1758 17.0647C21.2219 16.9812 21.2671 16.8972 21.3111 16.8126L22.4369 16.6294C22.4931 16.6205 22.546 16.5973 22.5906 16.5619C22.6351 16.5264 22.6698 16.4801 22.6911 16.4274C22.713 16.3748 22.721 16.3176 22.7144 16.261C22.7079 16.2045 22.6869 16.1506 22.6536 16.1044L21.9878 15.1801C22.017 15.0883 22.0448 14.9962 22.0715 14.9037L23.1397 14.5056C23.1931 14.4857 23.2405 14.4526 23.2774 14.4092C23.3143 14.3659 23.3394 14.3138 23.3505 14.2579C23.3617 14.2021 23.3584 14.1443 23.3409 14.0901C23.3234 14.0359 23.2923 13.9871 23.2505 13.9483L22.4145 13.1699C22.4248 13.0756 22.434 12.9812 22.4421 12.8868L23.4131 12.2853C23.4614 12.2556 23.5013 12.2139 23.529 12.1644C23.5567 12.1148 23.5713 12.059 23.5714 12.0023C23.5713 11.9452 23.5567 11.8892 23.529 11.8393C23.5014 11.7894 23.4616 11.7473 23.4133 11.7169H23.4064ZM16.9042 19.7888C16.5327 19.7087 16.2982 19.3421 16.3778 18.9705C16.3967 18.8822 16.4327 18.7984 16.4839 18.7241C16.5351 18.6497 16.6005 18.5861 16.6763 18.537C16.7521 18.488 16.8369 18.4543 16.9257 18.438C17.0145 18.4217 17.1057 18.423 17.194 18.442C17.5655 18.5214 17.8021 18.8887 17.7225 19.2602C17.7036 19.3485 17.6676 19.4323 17.6164 19.5066C17.5651 19.581 17.4998 19.6445 17.424 19.6936C17.3482 19.7427 17.2635 19.7764 17.1746 19.7927C17.0858 19.809 16.9947 19.8077 16.9064 19.7888H16.9042ZM16.5747 17.5552C16.2363 17.4826 15.9023 17.6981 15.8315 18.0373L15.4865 19.6472C14.4227 20.1294 13.2306 20.3992 11.9922 20.3992C10.7182 20.3992 9.51502 20.1182 8.43138 19.614L8.08638 18.0041C8.01385 17.6657 7.6816 17.4491 7.34324 17.5221L5.92113 17.8272C5.65753 17.5547 5.41225 17.2651 5.18688 16.9603H12.1094C12.1877 16.9603 12.2399 16.9462 12.2399 16.8749V14.4203C12.2399 14.349 12.1877 14.3349 12.1094 14.3349H10.0857V12.7846H12.273C12.4727 12.7846 13.3412 12.8417 13.6177 13.9523C13.7046 14.2929 13.8964 15.403 14.0268 15.759C14.1569 16.1571 14.686 16.9532 15.2498 16.9532H18.7001C18.7392 16.9532 18.781 16.9488 18.825 16.9408C18.5858 17.2654 18.3242 17.5728 18.0421 17.8608L16.5868 17.5489L16.5747 17.5552ZM6.99824 19.7556C6.90994 19.7746 6.81875 19.776 6.72991 19.7597C6.64106 19.7434 6.5563 19.7098 6.48048 19.6607C6.40467 19.6116 6.33929 19.548 6.28809 19.4736C6.23689 19.3992 6.20089 19.3154 6.18213 19.227C6.10285 18.8556 6.33877 18.4884 6.71077 18.4088C6.88908 18.3706 7.07524 18.4049 7.22829 18.504C7.38134 18.6031 7.48874 18.759 7.52688 18.9373C7.60617 19.3089 7.37002 19.6759 6.99824 19.7556ZM4.36638 9.11841C4.44027 9.28532 4.44498 9.47472 4.37949 9.6451C4.314 9.81548 4.18365 9.95296 4.01699 10.0274C3.66974 10.1815 3.26495 10.0247 3.11013 9.67802C2.95531 9.3312 3.11281 8.92384 3.45963 8.76913C3.6262 8.69529 3.81527 8.69061 3.9853 8.7561C4.15532 8.8216 4.29239 8.95191 4.36638 9.11841ZM3.55927 11.0293L5.04106 10.3704C5.35735 10.2299 5.50113 9.85941 5.35949 9.54323L5.05435 8.85323H6.25285V14.2492H3.84213C3.62752 13.4938 3.51884 12.7124 3.5192 11.9272C3.5192 11.6198 3.53581 11.3168 3.56763 11.0183L3.55906 11.0293H3.55927ZM10.0615 10.5052V8.91302H12.9146C13.062 8.91302 13.9562 9.08338 13.9562 9.75109C13.9562 10.3061 13.2706 10.5052 12.7066 10.5052H10.0527H10.0615ZM20.4341 11.9382C20.4341 12.1496 20.4263 12.3584 20.4109 12.5663H19.5417C19.4548 12.5663 19.4198 12.6233 19.4198 12.7084V13.1065C19.4198 14.0442 18.8912 14.2498 18.4268 14.3007C17.9845 14.3504 17.4957 14.1158 17.436 13.8451C17.175 12.379 16.7415 12.0671 16.0559 11.5231C16.9075 10.9836 17.792 10.1852 17.792 9.11263C17.792 7.96052 17.0025 7.23516 16.4651 6.87902C15.7087 6.38145 14.8727 6.28202 14.6471 6.28202H5.66774C6.88638 4.9242 8.54292 3.95991 10.4007 3.60613L11.46 4.71623C11.5168 4.77588 11.5849 4.82373 11.6603 4.85704C11.7356 4.89035 11.8168 4.90847 11.8992 4.91037C11.9816 4.91226 12.0636 4.89788 12.1404 4.86806C12.2172 4.83824 12.2874 4.79357 12.3469 4.73659L13.5323 3.6043C16.0094 4.06652 18.1105 5.61013 19.3268 7.7398L18.5151 9.57088C18.3752 9.88705 18.518 10.2586 18.8337 10.398L20.3951 11.0923C20.4224 11.3716 20.4361 11.652 20.4362 11.9326L20.434 11.9382H20.4341ZM11.4548 2.67216C11.52 2.60973 11.5968 2.56077 11.6809 2.5281C11.765 2.49543 11.8548 2.47968 11.945 2.48176C12.0352 2.48384 12.1241 2.50371 12.2066 2.54022C12.2891 2.57674 12.3636 2.62919 12.4258 2.69455C12.5514 2.82679 12.6196 3.00343 12.6153 3.1858C12.611 3.36817 12.5347 3.54142 12.403 3.66763C12.3378 3.73008 12.261 3.77905 12.1769 3.81173C12.0928 3.84441 12.003 3.86015 11.9128 3.85806C11.8226 3.85597 11.7337 3.83609 11.6512 3.79954C11.5687 3.763 11.4942 3.71053 11.432 3.64513C11.3063 3.51289 11.2381 3.33623 11.2424 3.15382C11.2467 2.97142 11.3231 2.79814 11.4548 2.67195V2.67216ZM19.5052 9.15173C19.5417 9.06916 19.5941 8.9946 19.6595 8.93233C19.7249 8.87005 19.8019 8.82129 19.8861 8.78884C19.9703 8.75639 20.0602 8.74089 20.1504 8.74323C20.2406 8.74556 20.3295 8.76569 20.412 8.80245C20.4946 8.83917 20.5692 8.89181 20.6315 8.95736C20.6937 9.0229 20.7425 9.10008 20.7749 9.18447C20.8074 9.26886 20.8229 9.35881 20.8206 9.4492C20.8182 9.53958 20.7981 9.62862 20.7614 9.71123C20.7249 9.79382 20.6725 9.86839 20.6071 9.93067C20.5418 9.99296 20.4648 10.0417 20.3805 10.0742C20.2963 10.1066 20.2065 10.1222 20.1162 10.1198C20.026 10.1175 19.9371 10.0974 19.8546 10.0606C19.772 10.0239 19.6974 9.97126 19.6351 9.9057C19.5728 9.84015 19.5241 9.76297 19.4916 9.67856C19.4592 9.59416 19.4437 9.50419 19.446 9.4138C19.4484 9.3234 19.4685 9.23435 19.5052 9.15173Z"
            fill="currentColor"
          />
        </g>
        <defs>
          <clipPath id="undefined-clip0_2066_1153">
            <path fill="#fff" d="M0 0H24V24H0z" />
          </clipPath>
        </defs>
      </svg>
    );
  },
);

Rust.displayName = "Rust";

Rust.metadata = {
  name: "Rust",
  category: "icon/language",
  tags: ["rust", "icon"],
  description: "Rust icon from icon/language category",
  type: ["stroke", "icon"],
} as IconMetadata;

export default Rust;
