Files
UnrealEngine/Engine/Source/Runtime/VerseCompiler/Public/uLang/SourceProject/SourceDataProject.h
2025-05-18 13:04:45 +08:00

58 lines
1.6 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "uLang/SourceProject/SourceProject.h"
namespace uLang
{
/**
* A source snippet in memory
**/
class CSourceDataSnippet : public ISourceSnippet
{
public:
CSourceDataSnippet(CUTF8String&& Path, CUTF8String&& Text)
: _Path(Move(Path))
, _Text(Move(Text))
{}
//~ Begin ISourceSnippet interface
virtual CUTF8String GetPath() const override { return _Path; }
virtual void SetPath(const CUTF8String& Path) override { _Path = Path; }
virtual TOptional<CUTF8String> GetText() const override { return _Text; }
virtual TOptional<TSRef<Verse::Vst::Snippet>> GetVst() const override { return _Vst; }
virtual void SetVst(TSRef<Verse::Vst::Snippet> Snippet) override { _Vst = Snippet; }
//~ End ISourceSnippet interface
private:
CUTF8String _Path; // Original path of this snippet (usually on disk)
CUTF8String _Text; // UTF8 encoded content of this snippet
TOptional<TSRef<Verse::Vst::Snippet>> _Vst;
};
/**
* A source package in memory
**/
class CSourceDataPackage : public CSourcePackage
{
public:
CSourceDataPackage(const CUTF8String& Name, const CUTF8String& DirPath, const CSourcePackage::SSettings& Settings)
: CSourcePackage(Name, TSRef<CSourceModule>::New(""))
, _DirPath(DirPath)
{
_Settings = Settings;
}
virtual const CUTF8String& GetDirPath() const override { return _DirPath; }
virtual EOrigin GetOrigin() const override { return EOrigin::Memory; }
private:
CUTF8String _DirPath; // The directory where the contained snippets will be saved
};
}