Struct VmfFile

Source
pub struct VmfFile {
    pub path: Option<String>,
    pub versioninfo: VersionInfo,
    pub visgroups: VisGroups,
    pub viewsettings: ViewSettings,
    pub world: World,
    pub entities: Entities,
    pub hiddens: Entities,
    pub cameras: Cameras,
    pub cordons: Cordons,
}
Expand description

Represents a parsed VMF file.

Fields§

§path: Option<String>

The path to the VMF file, if known.

§versioninfo: VersionInfo

The version info of the VMF file.

§visgroups: VisGroups

The visgroups in the VMF file.

§viewsettings: ViewSettings

The view settings in the VMF file.

§world: World

The world data in the VMF file.

§entities: Entities

The entities in the VMF file.

§hiddens: Entities

The hidden entities in the VMF file.

§cameras: Cameras

The camera data in the VMF file.

§cordons: Cordons

The cordon data in the VMF file.

Implementations§

Source§

impl VmfFile

Source

pub fn parse(content: &str) -> VmfResult<Self>

Parses a VMF file from a string.

§Arguments
  • content - The string content of the VMF file.
§Returns

A VmfResult containing the parsed VmfFile or a VmfError if parsing fails.

§Examples
use vmf_forge::VmfFile;

let vmf_content = r#"
versioninfo
{
    "editorversion" "400"
    "editorbuild" "8000"
    "mapversion" "1"
    "formatversion" "100"
    "prefab" "0"
}
"#;

let vmf_file = VmfFile::parse(vmf_content);
assert!(vmf_file.is_ok());
Source

pub fn parse_file(file: &mut impl Read) -> VmfResult<Self>

Parses a VMF file from a File.

§Arguments
  • file - The File to read from.
§Returns

A VmfResult containing the parsed VmfFile or a VmfError if parsing fails.

§Examples
use vmf_forge::VmfFile;
use std::fs::File;

let mut file = File::open("your_map.vmf").unwrap();
let vmf_file = VmfFile::parse_file(&mut file);
assert!(vmf_file.is_ok());
Source

pub fn open(path: impl AsRef<Path>) -> VmfResult<Self>

Opens and parses a VMF file from a file path.

§Arguments
  • path - The path to the VMF file.
§Returns

A VmfResult containing the parsed VmfFile or a VmfError if an error occurs.

§Examples
use vmf_forge::VmfFile;

let vmf_file = VmfFile::open("your_map.vmf");
assert!(vmf_file.is_ok());
Source

pub fn save(&self, path: impl AsRef<Path>) -> VmfResult<()>

Saves the VmfFile to a file at the specified path.

§Arguments
  • path - The path to save the VMF file to.
§Returns

A VmfResult indicating success or a VmfError if an error occurs.

§Examples
use vmf_forge::VmfFile;

let vmf_file = VmfFile::open("your_map.vmf").unwrap();
let result = vmf_file.save("new_map.vmf");
assert!(result.is_ok());
Source§

impl VmfFile

Source

pub fn merge(&mut self, other: VmfFile)

Merges the contents of another VmfFile into this one.

This method combines the visgroups, world solids (both visible and hidden), entities, hiddens, and cordons from the other VmfFile into the current VmfFile. versioninfo, viewsettings, and cameras are not merged; the original values in self are retained.

This method is experimental and its behavior may change in future versions. It does not handle potential ID conflicts between the two VMF files.

§Arguments
  • other - The VmfFile to merge into this one.
§Example
use vmf_forge::prelude::*;

let mut vmf1 = VmfFile::open("map1.vmf").unwrap();
let vmf2 = VmfFile::open("map2.vmf").unwrap();

vmf1.merge(vmf2);

// vmf1 now contains the combined contents of both files.
Source§

impl VmfFile

Source

pub fn get_entities_in_visgroup( &self, group_id: i32, include_children: bool, ) -> Option<impl Iterator<Item = &Entity> + '_>

Returns an iterator over entities (including hidden ones) belonging to the specified VisGroup ID.

§Arguments
  • group_id - The ID of the target VisGroup.
  • include_children - If true, includes entities from all child VisGroups recursively.
§Returns

An Option containing an iterator yielding references to the matching Entity objects. Returns None if no VisGroup with the given group_id is found.

Source

pub fn get_entities_in_visgroup_mut( &mut self, group_id: i32, include_children: bool, ) -> Option<impl Iterator<Item = &mut Entity> + '_>

Returns a mutable iterator over entities (including hidden ones) belonging to the specified VisGroup ID.

§Arguments
  • group_id - The ID of the target VisGroup.
  • include_children - If true, includes entities from all child VisGroups recursively.
§Returns

An Option containing an iterator yielding mutable references to the matching Entity objects. Returns None if no VisGroup with the given group_id is found.

Source

pub fn get_solids_in_visgroup( &self, group_id: i32, include_children: bool, ) -> Option<impl Iterator<Item = &Solid> + '_>

Returns an iterator over world solids (visible and hidden) belonging to the specified VisGroup ID.

§Arguments
  • group_id - The ID of the target VisGroup.
  • include_children - If true, includes solids from all child VisGroups recursively.
§Returns

An Option containing an iterator yielding references to the matching Solid objects. Returns None if no VisGroup with the given group_id is found.

Source

pub fn get_solids_in_visgroup_mut( &mut self, group_id: i32, include_children: bool, ) -> Option<impl Iterator<Item = &mut Solid> + '_>

Returns a mutable iterator over world solids (visible and hidden) belonging to the specified VisGroup ID.

§Arguments
  • group_id - The ID of the target VisGroup.
  • include_children - If true, includes solids from all child VisGroups recursively.
§Returns

An Option containing an iterator yielding mutable references to the matching Solid objects. Returns None if no VisGroup with the given group_id is found.

Source§

impl VmfFile

Source

pub fn to_vmf_string(&self) -> String

Converts the VmfFile to a string in VMF format.

§Returns

A string representing the VmfFile in VMF format.

Trait Implementations§

Source§

impl Clone for VmfFile

Source§

fn clone(&self) -> VmfFile

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for VmfFile

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for VmfFile

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl FromStr for VmfFile

Source§

type Err = VmfError

The associated error which can be returned from parsing.
Source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
Source§

impl PartialEq for VmfFile

Source§

fn eq(&self, other: &VmfFile) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for VmfFile

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.