47 lines
1.1 KiB
Bash
Executable File
47 lines
1.1 KiB
Bash
Executable File
#!/bin/bash
|
|
for file in *.rs; do
|
|
if [ "$file" = "mod.rs" ]; then
|
|
continue
|
|
fi
|
|
|
|
echo "Processing $file"
|
|
|
|
# Create a backup
|
|
cp "$file" "$file.bak"
|
|
|
|
# Add as_any() method right after as_any_mut()
|
|
awk '
|
|
{
|
|
lines[NR] = $0
|
|
if (/fn as_any_mut\(&mut self\)/) {
|
|
# Found as_any_mut, look for its closing brace
|
|
found_method = NR
|
|
}
|
|
if (found_method > 0 && /^ }$/ && !inserted) {
|
|
closing_brace = NR
|
|
inserted = 1
|
|
}
|
|
}
|
|
END {
|
|
for (i = 1; i <= NR; i++) {
|
|
print lines[i]
|
|
if (i == closing_brace) {
|
|
print ""
|
|
print " fn as_any(&self) -> &dyn std::any::Any {"
|
|
print " self"
|
|
print " }"
|
|
}
|
|
}
|
|
}
|
|
' "$file.bak" > "$file"
|
|
|
|
# Verify the change was made
|
|
if grep -q "fn as_any(&self)" "$file"; then
|
|
echo " ✓ Successfully added as_any() to $file"
|
|
rm "$file.bak"
|
|
else
|
|
echo " ✗ Failed to add as_any() to $file - restoring backup"
|
|
mv "$file.bak" "$file"
|
|
fi
|
|
done
|