Rust ma atrybut „inline”, którego można użyć w jednym z tych trzech rodzajów:
#[inline]
#[inline(always)]
#[inline(never)]
Kiedy należy ich używać?
W odwołaniu do Rusta widzimy sekcję atrybutów inline mówiącą
Kompilator automatycznie wstawia funkcje na podstawie wewnętrznej heurystyki. Nieprawidłowe wstawianie funkcji może w rzeczywistości spowolnić program, dlatego należy z niego korzystać ostrożnie.
Na forum wewnętrznym Rusta huon również konserwatywnie podchodził do specyfikacji inline .
Ale widzimy znaczne użycie w źródłach Rusta, w tym w bibliotece standardowej. Wiele atrybutów wbudowanych jest dodawanych do funkcji jednowierszowych, co powinno być łatwe dla kompilatorów do wykrycia i optymalizacji poprzez heurystykę zgodnie z odniesieniem. Czy w rzeczywistości nie są one potrzebne?
źródło
inline(never)
jest on używany w wewnętrznych elementach paniki, aby upewnić się, że optymalizator nie wbudowuje funkcji, które są wywoływane tylko w przypadku paniki.