cap_primitives/rustix/fs/set_symlink_permissions_unchecked.rs
1use crate::fs::Permissions;
2#[cfg(unix)]
3use crate::fs::PermissionsExt;
4use rustix::fs::{chmodat, AtFlags, Mode};
5use std::path::Path;
6use std::{fs, io};
7
8/// This can just use `AT_SYMLINK_NOFOLLOW`.
9pub(crate) fn set_symlink_permissions_unchecked(
10 start: &fs::File,
11 path: &Path,
12 perm: Permissions,
13) -> io::Result<()> {
14 let mode = Mode::from_bits_truncate(perm.mode().try_into().unwrap());
15
16 Ok(chmodat(start, path, mode, AtFlags::SYMLINK_NOFOLLOW)?)
17}