pub struct File { /* private fields */ }Expand description
An opened protobuf source file, returned by FileResolver::open_file.
Implementations§
source§impl File
impl File
sourcepub fn open(name: &str, path: &Path) -> Result<Self, Error>
pub fn open(name: &str, path: &Path) -> Result<Self, Error>
Read a protobuf source file from the filesystem into a new instance of File
§Errors
Returns an error if there is an IO error opening the file, or it is not a valid protobuf source file.
If the file does not exist, Error::file_not_found() is returned
§Examples
fs::write("foo.proto", "message Foo { }").unwrap();
let file = File::open("foo.proto", "foo.proto".as_ref()).unwrap();
assert_eq!(file.path(), Some("foo.proto".as_ref()));
assert_eq!(file.source(), Some("message Foo { }"));
assert_eq!(file.file_descriptor_proto(), &FileDescriptorProto {
name: Some("foo.proto".to_owned()),
message_type: vec![DescriptorProto {
name: Some("Foo".to_owned()),
..Default::default()
}],
source_code_info: Some(SourceCodeInfo {
location: vec![
Location { path: vec![], span: vec![0, 0, 15], ..Default::default() },
Location { path: vec![4, 0], span: vec![0, 0, 15], ..Default::default() },
Location { path: vec![4, 0, 1], span: vec![0, 8, 11], ..Default::default() }
]
}),
..Default::default()
});
assert!(File::open("notfound.proto", "notfound.proto".as_ref()).unwrap_err().is_file_not_found());sourcepub fn from_source(name: &str, source: &str) -> Result<Self, Error>
pub fn from_source(name: &str, source: &str) -> Result<Self, Error>
Read a protobuf source file from a string into a new instance of File
§Errors
Returns an error the string is not a valid protobuf source file.
§Examples
let file = File::from_source("foo.proto", "message Foo { }").unwrap();
assert_eq!(file.path(), None);
assert_eq!(file.source(), Some("message Foo { }"));
assert_eq!(file.file_descriptor_proto(), &FileDescriptorProto {
name: Some("foo.proto".to_owned()),
message_type: vec![DescriptorProto {
name: Some("Foo".to_owned()),
..Default::default()
}],
source_code_info: Some(SourceCodeInfo {
location: vec![
Location { path: vec![], span: vec![0, 0, 15], ..Default::default() },
Location { path: vec![4, 0], span: vec![0, 0, 15], ..Default::default() },
Location { path: vec![4, 0, 1], span: vec![0, 8, 11], ..Default::default() }
]
}),
..Default::default()
});sourcepub fn from_file_descriptor_proto(file: FileDescriptorProto) -> Self
pub fn from_file_descriptor_proto(file: FileDescriptorProto) -> Self
Create a new instance of File from a parsed FileDescriptorProto.
The file does not need to have type names or imports resolved. Typically, it would be returned by the parse() method.
sourcepub fn decode_file_descriptor_proto<B>(buf: B) -> Result<Self, DecodeError>where
B: Buf,
pub fn decode_file_descriptor_proto<B>(buf: B) -> Result<Self, DecodeError>where
B: Buf,
Create an instance of File by deserializing a FileDescriptorProto
from the given bytes.
Unlike when going through from_file_descriptor_proto(), extension options are preserved.
The file does not need to have type names or imports resolved.
sourcepub fn path(&self) -> Option<&Path>
pub fn path(&self) -> Option<&Path>
Returns the filesystem path, if this source is backed by a physical file.
sourcepub fn file_descriptor_proto(&self) -> &FileDescriptorProto
pub fn file_descriptor_proto(&self) -> &FileDescriptorProto
Trait Implementations§
source§impl From<File> for FileDescriptorProto
impl From<File> for FileDescriptorProto
source§impl From<FileDescriptorProto> for File
impl From<FileDescriptorProto> for File
source§fn from(file: FileDescriptorProto) -> Self
fn from(file: FileDescriptorProto) -> Self
Auto Trait Implementations§
impl RefUnwindSafe for File
impl Send for File
impl Sync for File
impl Unpin for File
impl UnwindSafe for File
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<D> OwoColorize for D
impl<D> OwoColorize for D
§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read more§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read more